2010-06-02 14 views
0

J'essaie de modulariser une fonction qui permet d'ajouter des valeurs à plusieurs structures en un appel. Maintenant je veux faire une addition de valeur par appel, mais je ne suis pas sûr de savoir comment faire une référence d'argument moins spécifique.struct et arguments

func ([?] * Val)
{

}

Répondre

1

Si toutes les structures commencent par le même "préfixe", de sorte que vous pouvez atteindre les parties souhaitées au même décalage, alors vous pourriez faites ce préfixe un struct et transmettez-lui un pointeur - une "version d'héritage pauvre". Si les portions désirées sont à des décalages différents dans différentes structures, vous ne pouvez pas vous contenter de passer juste un pointeur sur la fonction (sauf via une couche d'indirection, qui peut devenir encore plus complexe) - le plus simple peut être de passer un pointeur et un décalage, et utilisez l'arithmétique d'adresse pour atteindre la partie nécessaire. Il est difficile de donner des conseils plus spécifiques sans savoir comment vos différentes structures sont disposées et quelle (s) partie (s) d'elles la fonction doit atteindre!