#include
#include int Max(int n, ...)
{
int i = 0;
int max = 0;
va_list arg;
va_start(arg, n); for (i = 0; i < n; i++)
{
int val = va_arg(arg,int);...
分类:
其他好文 时间:
2015-05-20 20:42:18
阅读次数:
156
stdarg宏:
可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件中,它是标准库的一部分。这个头文件声明一个类型va_list
和三个宏va_start、va_arg和va_end。我们可以声明一个类型为va_list的变量,与这几个宏配合使用,访问参数。
声明一个va_list
类型的变量arg,它用于访问参数列表的未确定部分。这个变量是调用va_start来初始化...
分类:
编程语言 时间:
2015-05-15 09:10:19
阅读次数:
117
va_list arg 访问参数列表未确定部分
va_start(arg,val);//将 arg_ptr 设置为传递给该函数参数列表的第一个可选参数 arg是声明的变量名,val是已确定参数列表最后一个参数
va_arg(arg,int);//从 arg_ptr给出的位置检索 type 的值,并将 arg_ptr 指向列表中的下一个参数,使用 type 的范围确定下一个参数开始的...
分类:
其他好文 时间:
2015-05-13 19:53:49
阅读次数:
125
//头文件
va_list arg 访问参数列表未确定部分
va_start(arg,val);//将 arg_ptr 设置为传递给该函数参数列表的第一个可选参数
arg是声明的变量名,val是已确定参数列表最后一个参数
va_arg(arg,int);//从 arg_ptr给出的位置检索 type 的值,并将 arg_ptr 指向列表中的下一个参数,使用 type 的范围确定下一个...
分类:
其他好文 时间:
2015-05-12 13:38:58
阅读次数:
120
c语言中用可变参数列表的原因cpp文件中参数可以初始化,则实参中用几个参数写几个,但是c中形参不可以初始化,所以引出可变参数列表,头文件为stdarg.h,使用宏stdarg
va_list类型 arg变量 eg:va_list arg
宏stdarg使用了三种宏
va_start(arg,val)初始化
va_arg(arg,int)读取
va_end(arg)结束...
分类:
其他好文 时间:
2015-05-12 13:36:08
阅读次数:
136
C函数要在程序中用到以下这些宏:
void va_start( va_list arg_ptr, prev_param );
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
va_list:用来保存宏va_start、va_arg和va_end所需信息的一种类型。为了访问变长参...
分类:
编程语言 时间:
2015-05-12 09:27:33
阅读次数:
133
1.在学习c语言,难免会遇到多参函数,刚好c中也提供了一些机制:宏函数#ifdef _M_ALPHAtypedef struct {char *a0; /* pointer to first homed integer argument */int offset; /* byte offset of...
分类:
其他好文 时间:
2015-05-03 20:34:47
阅读次数:
149
1、可变参数的函数
头文件中定义了一些宏,用于可变参数的函数,如下
va_list:这种类型声明局部状态变量,假设变量名为va(用于下面的描述),用于遍历函数。
va_start:这个宏初始化状态变量va,要先调用之后才能调用va_arg与va_end。
va_arg:这个宏返回参数表中下一个参数的值,将内部指针(在va中)移到下一个参数,下一个参数的类型要用type指定,使va_arg能...
分类:
其他好文 时间:
2015-04-23 09:37:11
阅读次数:
122
名称描述相容 // 作用描述va_start使va_list指向起始的参数 va_arg检索参数C89va_end释放va_listva_copy拷贝va_list的内容实例解析:#include #include void printargs(int arg1, ...) /* 输出所有in...
分类:
其他好文 时间:
2015-04-16 19:41:15
阅读次数:
115
//实现一个简化的printf函数。
#include
#include
void my_printf(const char *str,...)
{
va_list arg;
//准备访问可变参数
va_start(arg,str);
while(*str != '\0')
{
switch(*str)
{
case 'c':
putchar( va_arg...
分类:
编程语言 时间:
2015-04-06 17:18:47
阅读次数:
184