详解可变参数列表
来源:互联网 发布:淘宝买家个人消费贷款 编辑:程序博客网 时间:2024/06/06 05:01
详解可变参数列表
首先我是个渣渣,本文仅限参考,谢谢
stdarg宏
可变参数列表是通过宏来实现的,这些宏定义stdarg.h头文件,它是标准库的一部分。这个头文件声明了一个类型va_list和三个宏——va_start、va_arg、va_end。我们可以声明一个类型为va_list的变量,与这几个宏配合使用,访问参数的值。
下面的函数就是运用可变参数模拟实现
#include<stdio.h>#include<stdlib.h>#include<stdarg.h>//可变参头文件void print(const char*format,...){ va_list arg; char*para=0; va_start(arg,format);//用a_start来初始化arg
while(*format) { switch(*format) { case's':para=va_arg(arg,char*);while(*para){ putchar(*para); para++; } break;case'c':putchar(va_arg(arg,char));break;default:putchar(*format);break; } format++; } va_end(arg);//用a_end来结束调用 } int main() {print("s ccc.\n","hello","b","i","t"); system("pause"); return 0; }
这里用到了va_list,va_start,va_end,va_arg
1、函数声明了一个va_arg来访问可变参数未访问的地方,这个变量是用va_start来初始化的;
2、为了访问参数,需用va_arg来接受两个参数:a_list和列表中下一位的参数
3、最后调用完参数后,须调用a_end来结束调用
对于这些宏存在两个基本限制,
1、这些宏无法判断实际存在参数的数量
2、这些宏无法判断实际参数的类型
2 0
- 详解可变参数列表
- 详解可变参数列表
- 详解可变参数列表
- 可变参数列表详解
- 详解可变参数列表
- 可变参数列表详解
- 【C语言】详解可变参数列表
- C语言可变参数列表详解
- Java可变参数列表
- 可变参数列表
- 关于可变参数列表
- 可变参数列表
- c++ 可变参数列表
- 可变参数列表
- cstdarg可变参数列表
- 可变参数列表
- java可变参数列表
- 可变参数列表
- JSONObject.toBean时多个类转换
- listview和imageview实现条目单选效果
- 小白笔记-------------------课程作业(sfind)
- 03-树1 树的同构
- Android之为图片创建Uri路径
- 详解可变参数列表
- 【WUSTOJ】 1582 Save Pang Pang
- Valgrind清除Bug
- 记录一下Android Studio下NDK开发
- Yii框架分库设计
- java配置Velocity
- ECMAScript语法
- Android中webview的使用
- 《互联网+时代7个引爆点》读书收获