理解此Header文件的这一部分

时间:2014-03-11 03:17:40

标签: 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

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

1 个答案:

答案 0 :(得分:6)

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

只是意味着va_start(v,l)将被__builtin_va_start(v,l)取代,而这个__builtin_va_start()显然是内置函数或宏,它由编译器或libc本身实现。