I was looking for some code about macros, and I found a code like this, for the macro « va_start » :
#define __va_argsiz(t) \
(((sizeof(t) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))
#define va_start(ap, pN) \
((ap) = ((va_list) (&pN) + __va_argsiz(pN)))
I would like to know what is the goal of « __va_argsiz » function exactly. Is it alignment limitations ?
Thanks !
Both alignment, and the default type promotion rules in C.