<stdarg.h> 是 C 标准库中的一个头文件,用于支持可变参数函数。可变参数函数是一种可以接受不定数量参数的函数。<stdarg.h> 提供了一组宏和函数,用于在函数内部访问可变数量的参数。

以下是一些 <stdarg.h> 中常用的宏和函数:

1. va_list类型:
   - va_list 是一个用于存储可变参数信息的类型。通常,它被声明为指向某种类型的指针。

2. va_start宏:
   - void va_start(va_list ap, last_param);
   - va_start 宏用于初始化 va_list,使其指向可变参数列表中的第一个参数。

3. va_arg宏:
   - type va_arg(va_list ap, type);
   - va_arg 宏用于访问可变参数列表中的下一个参数,并将参数的类型作为参数传递给它。

4. va_end宏:
   - void va_end(va_list ap);
   - va_end 宏用于清理 va_list,确保在函数返回之前释放所有相关资源。

下面是一个简单的例子,演示如何使用 <stdarg.h> 来实现一个简单的可变参数函数:
#include <stdio.h>
#include <stdarg.h>

void print_integers(int num, ...) {
    va_list args;
    va_start(args, num);

    for (int i = 0; i < num; ++i) {
        int value = va_arg(args, int);
        printf("%d ", value);
    }

    va_end(args);
}

int main() {
    print_integers(4, 10, 20, 30, 40);
    return 0;
}

在上面的例子中,print_integers 函数接受一个整数参数和可变数量的整数参数,并使用 <stdarg.h> 中的宏和函数来访问和打印这些参数。


转载请注明出处:http://www.pingtaimeng.com/article/detail/13554/C 语言