博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言函数的可选性自变量
阅读量:6403 次
发布时间:2019-06-23

本文共 779 字,大约阅读时间需要 2 分钟。

功能: 宏va_arg()用于给函数传递可变长度的参数列表。

  1. 首先,必须调用va_start() 传递有效的参数列表va_list和函数强制的第一个参数。第一个参数代表将要传递的参数的个数。
  2. 其次,调用va_arg()传递参数列表va_list 和将被返回的参数的类型。va_arg()的返回值是当前的参数。
  3. 再次,对所有的参数重复调用va_arg()
  4. 最后,调用va_end()传递va_list对完成后的清除是必须的。

 

1 #include 
2 #include
3 int sum( int, ... ); 4 5 int main( void ) 6 { 7 8 9 10 int answer = sum( 4, 4, 3, 2, 1 );11 12 printf( "The answer is %d\n", answer );13 14 15 16 return( 0 );17 18 }19 20 21 22 int sum( int num, ... ) 23 {24 25 int answer = 0;26 27 va_list argptr;28 29 va_start( argptr, num );30 31 for( ; num > 0; num-- )32 33 answer += va_arg( argptr, int );34 35 va_end( argptr );36 37 return( answer );38 39 }

这段代码显示10,他们是4+3+2+1

转载地址:http://djnea.baihongyu.com/

你可能感兴趣的文章
jenkins 手动执行_Jenkins 入门
查看>>
怎么判断冠词用a还是an_葡语干货 | 葡萄牙语冠词用法整理大全
查看>>
js传参不是数字_JS的Reflect学习和应用
查看>>
三个不等_数学一轮复习05,从函数观点看方程与不等式,记住口诀与联系
查看>>
右键新建文件夹_Macos电脑鼠标右键木有新建文档咋办,有办法,莫捉急
查看>>
卡尺测量的最小范围_汽车维修工具-测量用具
查看>>
网优5g前景_5G网络优化师前景怎么样?
查看>>
竞态条件的赋值_[译] part25: golang Mutex互斥锁
查看>>
delmatch oracle_完美完全卸载(清除)oracle数据库的方式(方法)
查看>>
pyqt 滚动条 美化_Pyqt5 关于流式布局和滚动条的综合使用示例代码
查看>>
51单机片 编译hex_单片机爬坑记-05-编译环境(完)
查看>>
java 正则表达式 img_Java正则表达式获得html字符串里的<img src=""/> 中的url列表
查看>>
dbutils java_Java篇-DBUtils与连接池
查看>>
java 文件crc校验_一个获取文件crc32校验码的简洁的java类 | 学步园
查看>>
java flatmapfunction_Java8 Stream flatmap中间操作用法解析
查看>>
java rmi spring 4.0_Java Spring RMI一些尝试
查看>>
JAVA怎么连接华为的HDFS系统_JAVA-API操作HDFS文件系统(HDFS核心类FileSystem的使用)...
查看>>
java牛客网四则运算_数据库刷题—牛客网(51-61)
查看>>
Java get set6_JDK6的新特性(转)
查看>>
java发送邮件 不登陆_Java邮件到Exchange Server“不支持登录方法”
查看>>