在C中传递变量参数
有人知道经典C中如何传递变量参数吗? 我今天做了一些调试,大多数常规参数都是通过堆栈传递的。 但是,似乎这不适用于变量参数。 这些参数是否存储在其他地方,如常量字符串?
提前致谢!
它们经常被传递到堆栈中。 您正在寻找的是您正在使用的平台的ABI规范。
对于AMD64平台,请在此处查看示例。
这取决于平台。 /usr/include/stdarg.h
是开始寻找细节的地方。
你的意思是可变长度参数列表 ?
这是一个有趣的技巧
void func(type* values) { while(*values) { x = *values++; /* do whatever with x */ } } func((type[]){val1,val2,val3,val4,0});