【问题标题】:Code comments now generating compiler errors代码注释现在会产生编译器错误
【发布时间】:2016-04-18 21:12:27
【问题描述】:

我正在尝试重新编译一个较旧的项目,其中一位同事添加了一些更具冒险精神的 cmets(好吧,这些是 Doxygen cmets,我忘了)

例如三元组///

uint32_t nx; ///< number of columns

它是用 4.2 开发的,现在用 4.8 编译器会生成以下错误:

错误:“/”标记之前的预期说明符限定符列表

我应该摆脱所有/// 表达式并替换为// 吗?这是一个大项目

【问题讨论】:

  • 更改编译器选项。例如,-std=c99 应该更好。
  • //////&lt; 用于文档工具作为 doxygen,但您应该处于 // 是常规注释的模式。
  • 你应该听从他的指导。这些是用于自动文档生成的Doxygen cmets。但是您应该使用符合标准的编译器或至少与 C99 兼容的编译器。单独的版本号是没有用的。你使用哪个编译器?
  • 哦,不要添加不相关的标签!这个问题显然是关于 C 而不是 C++。
  • 如果// 被很好地识别为评论,那么/// 没有理由不是。所以用// 替换/// 将无济于事。

标签: c


【解决方案1】:

// cmets 不适用于-std=c89-ansi 选项。请改用-std=c99-std=gnu99

【讨论】:

  • @ElDude g++ 拒绝 -std=c99 并且 gcc 拒绝 -std=c++98。你使用什么编译器同时接受它们?
  • 这是一个带有 C 核心的 C++ 项目,所以显然 C99 对所有人来说都是错误的,C++99 也是如此。
  • @ElDude 你刚刚告诉我你的编译器接受-std=c99,所以应该执行gcc,而不是g++,对吧?
  • 这很复杂... :) 我现在想通了。 1) 我删除了所有 ///> 和 // 条目。 2) 我对 C 文件使用 c99,对 C++ 文件使用 c++98。它刚刚编译...
猜你喜欢
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多