c - 理解这个头文件的这一部分

标签 c gcc macros typedef c-preprocessor

#ifndef STDARG_H_INCLUDED
#define STDARG_H_INCLUDED

typedef __builtin_va_list va_list;

#define va_start(v,l)   __builtin_va_start(v,l) // I don't understand this
#define va_arg(v,l)     __builtin_va_arg(v,l)
#define va_end(v)       __builtin_va_end(v)

#endif

好像作者定义了某种宏函数,但是我不明白这个函数是如何工作的?

最佳答案

#define va_start(v,l)   __builtin_va_start(v,l)

简单来说就是va_start(v,l)会被__builtin_va_start(v,l)代替,而这个__builtin_va_start()显然是内置函数或宏,由编译器或 libc 本身实现。

关于c - 理解这个头文件的这一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22315765/

相关文章:

当代码直接使用 gcc 运行时,Python C 版本为 : "undefined symbol" errror,

c++ - 非命名空间范围内的显式特化

c++ - g++ 编译器是否以不同方式查看字符串数组和整数数组?

node.js - 我试图使用 "create-proton-app new-App"创建一个 Proton Native 应用程序,但它失败并出现一堆错误

c - C语言中#符号有定义吗?

c++ - 如何使用宏或元编程在 C++ 中创建 'passthru' 函数?

c - 遍历奇数和 2

c - 指针的要点/重要性是因为非原始数据需要多个内存块吗?

c - 在 C 中不支持 OpenMP

c - 在 C 预处理器中避免双重宏替换