#if 0和#endif之间的代码块必须配对双引号?

前端之家收集整理的这篇文章主要介绍了#if 0和#endif之间的代码块必须配对双引号?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
int main(void)
{
    #if 0
    something"
    #endif
    return 0;
}

上面一个简单的程序生成一个警告:缺少终止“gcc中的字符.这看起来很奇怪,因为这意味着编译器允许#if 0和endif之间的代码块在这里有无效的语句,但不是双引号”对.使用#ifdef和#ifndef也是如此.

真实的评论在这里很好:

int main(void)
{
    /*
    something"
    */
    return 0;
}

为什么?并且单引号’表现相似,是否还有其他特殊处理的令牌?

解决方法

comp.Lang.c FAQ,11.19

Under ANSI C,the text inside a “turned off” #if,#ifdef,or #ifndef must still consist of “valid preprocessing tokens.” This means that the characters ” and ‘ must each be paired just as in real C code,and the pairs mustn’t cross line boundaries.

原文链接:https://www.f2er.com/c/119890.html

猜你在找的C&C++相关文章