加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 04:51:56 所属栏目:百科 来源:网络整理
导读:int main(void){ #if 0 something" #endif return 0;} 上面一个简单的程序生成一个警告:缺少终止“gcc中的字符.这看起来很奇怪,因为这意味着编译器允许#if 0和endif之间的代码块在这里有无效的语句,但不是双引号”对.使用#ifdef和#ifndef也是如此. 真实的评
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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读