在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});