#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
似乎作者定义了某种宏函数,但我不明白这个函数是如何工作的?
答案 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本身实现。