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
wvsprintf 函数声明:wvsprintf( Output: PChar; {用于返回的缓冲区} Format: PChar; {格式; 类似与 Format 的格式, 应该是和 C 语言的 printf 的格式相同} arglist: va_list {数组指针}): Integer; .....
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
va_list ap; //声明一个变量来转换参数列表 va_start(ap,fmt); //初始化变量 va_end(ap); //结束变量列表,和va_start成对使用 可...
分类:
其他好文 时间:
2015-04-07 23:16:40
阅读次数:
144
//实现一个简化的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
1-(id)initWithFrame:(CGRect )frame ImagesAndStringsOfObject:(id )image,...{ self=[super initWithFrame:frame]; if(self) { va_list argum...
分类:
其他好文 时间:
2015-03-30 15:49:42
阅读次数:
226
再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
C语言的变参函数
UCC编译器中有不少地方使用了C语言的变参函数,这里我们专门用一小节来对C语言变参函数的实现原理进行分析。C标准库中的printf函数就是一个典型的变参函数,其接口如下所示,函数声明中的省略号…表明这是一个变参函数。
int printf(const char *format, ...);
下面我们举一个简单的例子来说明printf函数的调...
分类:
编程语言 时间:
2015-03-03 22:14:52
阅读次数:
355