c语言参数传递问题?

首先来看一个簡单的例子

我们可以看到,对于这个代码只可以计算两个数的加法
这样我们引入一个新的知识点!

第一个4表示元素个數剩余表示元素内容

va_list arg 创建一个字符指针arg,用于访问参数列表的未确定部分

初始化变量arg ,va_start有两个参数,它的第一个参数是va_list所创建的字符指针第2个参数是“…”之前的那个参数;(不可以读省略号)
跳过num,来到位置参数的第一个参数向上取四的整数倍

先给arg加4再減,arg这次产生的结果没变但是arg指向了下一个位置。一个代码做了两个动作

取出所有未知参数然后加给sum

给指针赋值空指针。不用的时候釋放

防止指针乱指用完一定要释放

用Eclipse 编译一个Windows 命令行 C工程但是在Console裏面总是不能及时输出,只会在最后程序退出的时候一次输出来对于IOT来讲,很麻烦

来替换printf,但是在 多参数宏方面遇到问题

最后用到攵中的这个例子解决了:

2. c语言可变参数中编写可变参数宏

我要回帖

更多关于 c语言参数 的文章

 

随机推荐