【问题标题】:-Ansi and comments giving errors?-Ansi 和评论给出错误?
【发布时间】:2010-12-22 17:45:48
【问题描述】:

在具有// Comment here 的行上使用-ansi -pedantic 编译时出现错误。为什么会这样?

“/”标记之前的预期表达式

程序中出现'\347'

示例代码int someVariable = 0; // Some comment

我有很多很多这些错误,是什么?

【问题讨论】:

    标签: c comments c89


    【解决方案1】:

    C89 不支持 C++ 风格的 cmets。

    【讨论】:

    • 完全迂腐,ANSI C 确实支持 C++ 风格的 cmets,因为 ANSI C 标准是 c99。许多人和编译器错误地称为“ANSI C”(c89)的东西没有。
    【解决方案2】:

    因为 gcc 开发人员误解了 ANSI C 的含义,或者使选项与“兼容性”的旧标准保持一致。 ANSI C是ISO C是C99,它允许// cmets,但是当很多人说ANSI C时,他们的意思是“ANSI对C语言的第一个标准化”,即C89。 gcc -ansi 选项等价于-std=c89

    如果您想强制遵守现代标准,您应该使用-std=c99 而不是-ansi

    【讨论】:

    • 并在您使用 gcc 时提交错误!
    • 我放弃了。我最喜欢的 bug 关闭理由是:“无论如何,仅仅因为代码在语法上是‘有效的’GNU C 并不意味着 gcc 总是可以编译它。” :-)
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 2014-12-25
    • 2016-03-20
    相关资源
    最近更新 更多