//头文件
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
va_list arg;声明一个va_list 类型的变量arg,它用于访问参数列表的未确定部分;
va_start(arg,val);第一个参数是va_list的变量名,第二个参数是不确定参数的前一个参 数;
a_arg(arg,int);返回这个参数的值,并使用var_arg指向下一个可变参数,第一个参数是
...
分类:
其他好文 时间:
2015-05-11 21:53:08
阅读次数:
141
//实现一个简化的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
//用可变参数列表实现printf函数
#include
#include
void my_printf(const char *str,...)
{
va_list fun;
va_start (fun,str);
while(*str!=0)
{
if(*str=='c')
{
putchar(va_arg(fun,char ));
}
if(*str=='s...
分类:
编程语言 时间:
2015-04-06 17:18:05
阅读次数:
171
再c++里有函数重载,在c里有可变参数列表,用stdarg宏实现定义在的头文件中,其中有3个宏:va_start(va_list的变量名,省略号前最后一个有名字的参数)用于初始化,va_arg(va_list的变量名,可变参数类型)用于取出可变参数,va_end(va_list的变量名)用于表明结束取值,用va_list声明一个类型为va_list的变量如arg
#include
#includ...
分类:
其他好文 时间:
2015-03-12 19:18:14
阅读次数:
109
函数原型中,列出了函数期望接受的参数,但函数只能显示固定数目的参数。让一个函数在不同的时候接受不同的数目的参数是不是可以呢?答案是肯定的(printf就是一个可变参函数),但存在一些限制。
int avarage(int val, int v1, int v2, int v3,int v4, int v5)
{
floatsum = v1;
if(val>= 2)
...
分类:
其他好文 时间:
2015-03-12 15:08:42
阅读次数:
134
函数参数的传递原理
函数参数在内存中是以栈的形式存取,从右至左入栈。
参数在内存中存放格式:
在进程中,堆栈地址是从高到低分配的。当执行一个函数的时候,将参数列表入栈,压入堆栈的高地址部分,然后入栈函数的返回地址,接着入栈函数的执行代码,这个入栈过程,堆栈地址不断递减。
总之,函数在堆栈中的分布情况是,地址从高到低,依次是:函数参数列表,函数返回地址,函数执...
分类:
编程语言 时间:
2015-01-21 15:13:50
阅读次数:
235