根据 C 语言标准, 和 之间的行#if 0
只#endif
需要包含预处理标记,因此大多数类型的完全格式错误的语法,例如#foo
or#include [bar]
是允许的(默默地忽略);GCC 和 Microsoft C++ 确实默默地忽略了这些。
据我所知, An@
不对应于任何预处理标记,因此仍然应该是语法错误。GCC 和 Microsoft C++ 默默地忽略它。这实际上是语言扩展还是我错过了什么?
#if 0
有没有人真正使用在实践中使用格式错误的语法的能力#endif
?