不定输入参数函数的编程中需要用到的宏,即注意事项
2013-01-04 14:19
417 查看
不定参数输入的一些宏
(1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针;
(2)然后用VA_START宏初始化变量刚定义的VA_LIST变量;
(3)然后用VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型(如果函数有多个可变参数的,依次调用VA_ARG获取各个
参数);
(4)最后用VA_END宏结束可变参数的获取。
应该注意的问题:
(1)可变参数的类型和个数完全由程序代码控制,它并不能智能地识别不同参数的个数和类型;
(2)如果我们不需要一一详解每个参数,只需要将可变列表拷贝至某个缓冲,可用vsprintf函数;
(3)因为编译器对可变参数的函数的原型检查不够严格,对编程查错不利.不利于我们写出高质量的代码;
(1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针;
(2)然后用VA_START宏初始化变量刚定义的VA_LIST变量;
(3)然后用VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型(如果函数有多个可变参数的,依次调用VA_ARG获取各个
参数);
(4)最后用VA_END宏结束可变参数的获取。
应该注意的问题:
(1)可变参数的类型和个数完全由程序代码控制,它并不能智能地识别不同参数的个数和类型;
(2)如果我们不需要一一详解每个参数,只需要将可变列表拷贝至某个缓冲,可用vsprintf函数;
(3)因为编译器对可变参数的函数的原型检查不够严格,对编程查错不利.不利于我们写出高质量的代码;
相关文章推荐
- 5.1 Python 函数-默认参数,*args,**kwargs的使用;作用域-局部空间使用全局变量需要注意的事项等
- 编程需要注意的事项
- 需要用到opencv依赖库的CMakeLists注意事项
- socket 编程下 inet_ntoa() 函数的使用与注意事项
- 数组参数传递时需要注意的事项
- C 函数传递指针参数注意事项
- 通常情况下你想通过函数参数获取一段动态分配的内存时需要用到
- C# 引用类型作为函数参数时一些需要注意的地方
- mysqldump加-w参数备份数据时需要注意的事项
- go struct作为值函数参数需要注意的地方
- 写正确函数需要注意的地方:输入两个整数n和m,从数列1,2,3,...n中随意取几个数,使其和为m,列出所有可能组合
- python 函数的缺省参数的注意事项
- 使用BeautifulSoup中的find()和findAll()函数时关键字参数的注意事项
- 编程需要注意的事项
- 黑马程序员:__函数参数、声明、定义等注意事项__
- 【C】——使用creat()函数需要注意的事项
- C++指针作为函数的参数进行传递时需要注意的一些问题
- 抱歉,没分了!!!请教linux下,用C/C++编程,如何知道我要实现某一功能需要用到什么函数
- epoll 编程注意事项以及参数查看
- 实例解析使用指针作为函数参数传递需要注意的问题