`

stdarg.h 可变长参数

    博客分类:
  • APUE
阅读更多
http://zh.wikipedia.org/zh-sg/Stdarg.h
http://www.cppblog.com/qiujian5628/archive/2008/01/21/41562.html

★stdarg是由stdandard(标准) arguments(参数)简化而来


#include <stdio.h>
#include <stdarg.h>
 
void printargs(int arg1, ...)   /* 輸出所有int型態的參數,直到-1結束 */
{
    va_list list;                 //  a_list 用来指向参数 C89
    int i;

    va_start(list, arg1);         //  va_start 使va_list指向起始的参数 C89
    i = arg1;
    while (i != -1)
    {
        printf("%d ", i);
        i = va_arg(ap, int);    //  va_arg 检索参数 C89
    }

    va_end(ap);                 //  va_end 释放va_list	C8
    putchar('\n');
}
 
int main(void)
{
    printargs(5, 2, 14, 84, 97, 15, 24, 48, -1);
    printargs(84, 51, -1);
    printargs(-1);
    return 0;
}


分享到:
评论

相关推荐

    可变参数stdarg.h使用方法(例题)

    可变参数stdarg.h使用方法(例题) va_list用法 va_start已经 va_end

    stdarg.h中三个宏va_start ,va_arg和va_end的应用

    3. **获取可变参数**:使用`va_arg`宏获取每个可变参数。该宏需要两个参数:`va_list`类型的指针和要返回的参数的类型。每次调用`va_arg`都会使得指针移动到下一个参数的位置。 4. **清理资源**:使用`va_end`宏...

    c语言基于stdarg.h的可变参数函数的用法

    C语言基于stdarg.h的可变参数函数的用法 在C语言中,函数的参数个数通常是在函数声明时指定的,但是在某些情况下,我们需要使用可变参数函数,即函数的参数个数可以根据实际情况而定。这种函数的实现是基于stdarg.h...

    stdarg的用法(可变参数的用法)

    可变参数列表是通过宏来实现的,这些宏定义于stdarg.h头文件,它是标准库的一部分。 这个头文件声明的一个va_list的类型,和三个宏va_start,va_arg,va_end。我们可以生明一个va_list类型的变量,配合三个宏使用。...

    C51可变参数讲解.pdf

    C51可变参数函数允许程序员设计能接受不定数量参数的函数,这在C语言中是通过头文件stdarg.h提供的宏实现的。stdarg.h在Keil C51环境中也提供了对可变参数函数的支持,可以让嵌入式开发人员灵活地编写函数,以处理...

    linux头文件介绍

    linux应用程序中常用头文件的介绍 ; &lt;assert.h&gt; 验证程序断言 &lt;cpio.h &gt; cpio归档值 ...&lt;stdarg.h &gt; 可变参数表 &lt;stddef.h &gt; 标准定义 &lt;stdio.h &gt; 标准I/O库 &lt;stdlib.h &gt; 公用函数 &lt;string.h &gt; 字符串操作 ......

    C语言可变参数技术内幕.pdf

    C语言中的可变参数函数可以接受可变数量的参数,通过使用stdarg.h头文件中的宏来实现。这些宏包括va_start、va_arg和va_end。va_start宏用于初始化可变参数表,va_arg宏用于取得当前的可变参数,va_end宏用于结束可...

    水滴石穿C语言之可变参数问题.doc

    在C语言中,可变参数列表是一个非常独特的特性,它允许函数接受数量不确定的参数。这一特性主要通过标准库中的 `&lt;stdarg.h&gt;` 头文件来实现。`&lt;stdarg.h&gt;` 提供了一些宏和数据类型,使得程序员能够在不知道确切参数...

    C语言可变参数的使用

    首先,C语言中的可变参数是通过`stdarg.h`头文件提供的宏和类型来实现的。这个头文件包含了一些关键的函数和类型定义,如`va_list`、`va_start`、`va_arg`和`va_end`,它们是处理可变参数的关键。 1. `va_list`:这...

    C/C++定义可变参数函数,演示程序

    可变参数函数的核心是`stdarg.h`库,它提供了一些宏和类型,帮助我们在函数内部处理可变数量的参数。首先,我们需要包含这个头文件: ```cpp #include &lt;stdarg.h&gt; ``` 在C++中,为了定义可变参数函数,我们通常会...

    用C语言实现参数个数可变的函数

    这些宏定义在stdarg.h头文件中,它们允许函数访问可变数量的参数,这种处理方式通常被称为可变参数列表或可变参数宏。 在C语言中,实现参数个数可变的函数主要有两种形式,分别是ANSI标准形式和与UNIX System V兼容...

    C以及Java中可变参数列表函数定义方法

    在C语言中,可变参数列表的实现依赖于`stdarg.h`库中的宏和数据类型。要定义一个可变参数列表的函数,我们需要以下几步: 1. 定义一个固定参数列表,通常包含至少一个参数,用于确定函数调用的上下文。例如,这个...

    C语言变长参数C语言变长参数C语言变长参数

    在实际编程中,为了确保代码的可移植性,通常会使用`stdarg.h`提供的工具来安全地处理变长参数。例如,`printf`函数能够解析`fmt`字符串并根据其中的格式说明符正确地处理各种类型的变长参数。 总的来说,C语言的变...

    C语言中可变参数的用法.doc

    在C语言中,实现可变参数的机制依赖于一组预定义的宏,它们定义在`stdarg.h`头文件中。这些宏包括`va_start`、`va_arg`和`va_end`。下面是它们的用途: 1. `va_start(arg_ptr, prev_param)`:这个宏用于初始化`va_...

    C语言中一些可变参数的用法

    本文讨论了C语言中可变参数的用法,包括如何写一个简单的可变参数的C函数,如何使用可变参数宏va_start、va_arg和va_end,以及可变参数在编译器中的处理。 一、写一个简单的可变参数的C函数 在C语言中,某些函数...

    怎样写一个有可变参数的函数?

    要创建一个有可变参数的函数,我们需要使用C语言的变长参数(Variable Length Argument List,VLAs)特性。在C99标准以后,C语言引入了`stdarg.h`头文件,提供了处理变长参数的工具。 首先,我们来看一个简单的例子...

    C语言可变参数

    在C语言中,可变参数是一种...总结,C语言中的可变参数功能通过`stdarg.h`头文件提供的宏来实现,这使得程序员可以创建灵活的函数,处理不确定数量的参数。理解这些概念对于深入掌握C语言和进行相关开发工作至关重要。

    C语言中可变参数的用法

    这些宏定义在`stdarg.h`头文件中,因此编写可变参数函数时需要包含此头文件。 #### 宏定义解析 1. **`va_start`**: 初始化可变参数列表的迭代器。 - `void va_start(va_list arg_ptr, prev_param);` - 参数: -...

    C语言可变参数.pdf

    C标准库中提供了许多方便的宏和函数用于处理可变参数,如`stdarg.h`头文件中定义的宏和类型。这些工具构成了C标准库的“设施”部分,方便开发者编写能够处理可变参数的函数。 ### 部分内容知识点:可变参数函数的...

Global site tag (gtag.js) - Google Analytics