翻阅stdarg.h
,我发现了以下内容:
#if !defined(__STRICT_ANSI__) || __STDC_VERSION__ + 0 >= 199900L
#define va_copy(d,s) __builtin_va_copy(d,s)
#endif
在表达式中添加 0 有什么目的吗?
大多数编译器会忽略这一点。它可能是以前实现的一些遗留代码,也可能是为了说服特定的编译器按照程序员的意图处理这个问题。