【问题标题】:How to comment a few lines, with comments inside怎么注释几行,里面有注释
【发布时间】:2011-04-25 20:42:20
【问题描述】:

我有一个这样的程序

int main(){ 

    char c;
    int i; /* counter */
    double d;

    return 0;
}

如果我想注释掉 char、int 和 double,并且只保留未注释的 return,我可以这样做吗?已经存在的评论停止评论.. 有没有一种简单/快速的方法来评论它?

【问题讨论】:

  • 一般来说,我会在行尾使用// 作为一行 cmets。所以它将是// counter,您可以轻松地将块包装在/*...*/

标签: c++ c comments


【解决方案1】:
int main(){ 
#if 0
    char c;
    int i; /* counter */
    double d;
#endif
    return 0;
}

严格来说不是评论,但效果是您想要的,并且很容易还原。

这也可以很好地扩展到更大的代码块,尤其是如果您的编辑器可以匹配 #if..#endif 的开头和结尾。

【讨论】:

  • +1 ... 和“预处理器 cmets”(不像 /* ... */)嵌套
  • #IF FALSE 也是一个选项,而且更明确
  • ...除了FALSE 不是标准的预定义宏之一,并且在某些条件下会导致某些编译器发出警告(例如,-Wundefgcc 下生效)。
  • 聪明,但我希望人们只使用它来快速调试某些东西然后撤消它。我讨厌这样扫描代码。
  • @Meryln:除非有人这样​​做#DEFINE FALSE TRUE
【解决方案2】:
int main(){ 

/*
    char c;
    int i; // counter
    double d;
*/
    return 0;
}

【讨论】:

  • @Steve 的回答非常聪明,但我发现这是最常见的,也最不可能让您的开发经理提问 :)
  • 我不想将 cmets 从 /**/ 更改为 // 因为我正在编写 linux 内核的东西..
  • @KennyCason #if 0 非常普遍且广为人知,并且具有同时使用 C 和 C++ 的额外好处。
  • @meagar 很高兴知道,我会记下它。我只是没见过它使用过:)
  • @KennyCason,你通常不会在审查和发布的代码中看到它,因为留下孤立的代码块是不好的做法。但这是编码等时的常用技术。
【解决方案3】:

如果您的编译器支持 cmets 的 // 表示法(在 C 中是非标准的,但很普遍支持),请使用可以使用这些符号切换整个行块的编辑器。

【讨论】:

  • // cmets 在标准 C99 编译器中可用 :-)
  • 确实,这取决于使用的 C 的风格 ;-)
【解决方案4】:

在 C99 中

int main(){ 

//    char c;
//    int i; /* counter */
//    double d;

    return 0;
}

【讨论】:

    【解决方案5】:

    我偏爱:

    int main(){ 
    
    #ifdef USE_DISABLED_CODE
        char c;
        int i; /* counter */
        double d;
    #endif
    
        return 0;
    }
    

    使用像“CODE_REMOVED_FOR_TESTING_PURPOSES”或“REMOVED_FROM_E3_BUILD”这样的简洁名称,并且不要定义它,并且您已经给自己留下了关于为什么禁用代码的简洁评论(如果您在所有内容中进行查找,它将显示出来) #ifdef 的文件)。

    【讨论】:

    • 我最近(2010 年)从大约 30 个文件中删除了#ifdef POST_JUNE_DEVELOPMENT 块。现在没有人确定正在讨论哪一年(可能是 1994 年左右,但它可能比那更早;我们大约在那个时候改变了 CM 系统,所以更古老的历史已经丢失),更不用说计划中的“六月后开发”是什么了将。您可能应该至少在一处记录定义的含义。
    • 我在权衡方法时使用它。我尝试使用一个短语来描述块的意味着,而不是像POST_JUNE_DEVELOPMENT 这样模糊的词。我知道几年后我会再次看到这段代码,我想知道 June 是谁,她担任什么职位,或者为什么她的离开让某些事情得以发展。 ;-)
    【解决方案6】:

    有很多支持使用热键注释/取消注释的编辑器/IDE。这是一个非常有用的功能。 在 Kate/KDevelop 中,热键是 Ctrl+D。

    THIS 问题中也描述了这一点(以及支持此功能的其他 IDE)。

    【讨论】:

      猜你喜欢
      • 2017-01-18
      • 2014-01-15
      • 2013-05-23
      • 2011-12-07
      • 1970-01-01
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多