我们都知道C语言中,struct会做内存对齐,实际分配的内存出现比看上去的多。
C语言函数参数传递的时候也会有类似的情形。但这个和struct内存对齐(https://stackoverflow.com/questions/4306186/structure-padding-and-packing)不一样,它不是插入同类型的数据而是忽略比较小的参数指定,然后widen这个参数。
具体扩展到多大,不同的系统会有不同的大小。对于Linux IA32 是32bits,Linux x86_64是64bits。
参考:https://stackoverflow.com/questions/30363661/c-function-argument-memory-alignment-considerations