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