【发布时间】:2017-09-12 07:36:52
【问题描述】:
我的 C 语言老师声称 所有 变量必须在 任何操作之前定义。我记得它是 C 的一个非常古老的特性(不迟于 1990 年),但我无法用 GCC 7.2.0 重现它。
我的老师声称:
int main(){
int a; /* Valid */
a = 1; /* An operation */
int b; /* Invalid because an operation has already occurred */
return 0;
}
我尝试编译
gcc test.c -std=c89 -Wall -Wextra -pedantic
但它没有给出错误,甚至没有警告。
我如何验证(或证明错误)该陈述?
【问题讨论】:
-
-pedantic-errors -
仅供参考,那些
// comments在严格的 c89 中也是无效的。如果它们也没有被 gcc 标记并启用了迂腐错误,我会感到惊讶。叮当肯定会抓住他们。 -
@AnttiHaapala - coliru 的在线编译器(我的链接)是 GCC 7.2.0。这很可能是 OP 的一个错误。
-
@StoryTeller,这里是godbolt
标签: c gcc compiler-errors obsolete