C语言函数参数,内存对齐问题

我们都知道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

 

你可能感兴趣的:(C语言)