yrH*_*Jlb 1 c c++ standards
我经常看到关于省略号的教程,例如:
void foo(int i, ...){ int *p = &i; ++p; //... }
而我只是想知道,这种方法在标准方面是否正确?我可以使用没有va_*宏的可变参数吗?也许某些实现以相反的顺序存储args,或类似的东西.
UPD: "使用"=可移植且可靠地传递args
dbu*_*ush 7
参数如何传递给函数的机制非常特定于实现.它们可以通过堆栈,寄存器或其他方法传递,并且方法可以根据数据类型而不同.
功能/宏stdarg头文件家庭(va_start,va_arg,va_end在第7.16指定等),C标准抽象了这一切,并且是唯一的处理变量参数列表符合标准的方式.
va_start
va_arg
va_end
归档时间:
7 年,7 月 前
查看次数:
119 次
最近记录: