#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/