Je ne suis pas d'accord avec le terme 'size' qui désigne traditionnellement une taille d'objet en byte, c'est à dire la valeur retournée par l'opérateur sizeof.
Cette macro calcule la dimension ou le nombre d'éléments du tableau, ce qui est différent.
Je suggère donc, pour éviter toute confusion, de l'appeler NB_ELEM() ou DIM().
D'autre part, il y a une erreur dans les parenthèses :
Code:
#define NB_ELEM(a) (sizeof (a) / sizeof *(a))
Je rappelle qu'ici, comme dans toutes les macros, les parenthèses sont là pour assurer que l'expression passée en paramètre soit bien traitée en priorité.