Why does stdarg.h have a macro « __va_size »?
c, c++, variadic-functions
Solution
Both alignment, and the default type promotion rules in C.
Problem
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 !