开发可变长参数的方法。
2015-07-23 13:49
337 查看
前言:va-list是一个字符指针,可以理解为指向当前参数的一个指针,取参应通过这个指针进行。
Typedef char *va-list;
Step1:在调用参数表之前,应该定义一个va-list类型的变量,以供后用(假设这个va-list类型变量被定义为ap;)。
Step2:然后对ap进行初始化,让他指向可变参数表中的第一个参数,这是通过va-start来实现的,这个函数的第一个参数是ap本身,第二个参数是在变参表前面紧挨着的一个变量(格式符%d);
Step3:然后获取参数,调用va-arg。他的第一个参数是ap,第二个参数是要获取的参数的指定类型(例如int),并返回这个指定类型的值,同时把ap的位置指向变参表的下一个变量位置;
Step4:在获取完所有的参数之后,我们又要把这个ap指针关掉,以免发生危险,方法是调用va-end,它是将输入的参数ap置为null,因养成获取完参数表后关掉指针的习惯.
Typedef char *va-list;
Step1:在调用参数表之前,应该定义一个va-list类型的变量,以供后用(假设这个va-list类型变量被定义为ap;)。
Step2:然后对ap进行初始化,让他指向可变参数表中的第一个参数,这是通过va-start来实现的,这个函数的第一个参数是ap本身,第二个参数是在变参表前面紧挨着的一个变量(格式符%d);
Step3:然后获取参数,调用va-arg。他的第一个参数是ap,第二个参数是要获取的参数的指定类型(例如int),并返回这个指定类型的值,同时把ap的位置指向变参表的下一个变量位置;
Step4:在获取完所有的参数之后,我们又要把这个ap指针关掉,以免发生危险,方法是调用va-end,它是将输入的参数ap置为null,因养成获取完参数表后关掉指针的习惯.
相关文章推荐
- Java_ArrayList与List解析
- android开发动画总结二(frame animation)
- Postfix邮件服务器搭建(四)
- cocos2dX 音乐和声音效果
- Cocos2dx-自定义怪物伤害值
- 侧边导航栏自动获取文章的高度
- react组件生命周期过程
- Caffe代码导读(0):路线图
- openwrt中luci学习笔记
- jQuery
- Android获取View 的坐标和屏幕高度、状态栏高度、标题栏高度
- Postfix邮件服务器搭建(三)
- mysql -- 预处理语句
- 【转】android自动化测试之MonkeyRunner使用实例(三)
- Android 4.4 Launcher3——导入eclipse进行调试
- 关于SSDB的网络模型
- java与 C++ 之间进行 SOCKET 通信
- 如何注册一个微信公众号
- 微软的系统管理服务器SMS
- Android GUI之Activity、Window、View