【发布时间】:2016-08-10 13:17:05
【问题描述】:
是否有任何版本的 C 或任何不允许隐式声明函数的编译器?
例如。使用 mingw 编译器,如果我在我的程序中使用 printf 函数而不包含 stdio.h,它会编译我的程序,并显示警告“内置函数‘printf’的隐式声明不兼容”。
我想知道是否有某些版本的 C 或某些编译器在这些情况下无法编译我的程序。
最好的问候。
【问题讨论】:
-
为什么不看看各种编译器可用的各种选项?大多数允许您将警告作为错误
-
使用
-Werror,代码不会编译。 -
1999 年的标准取消了隐式
int,因此使用-std=c99 -Werror进行编译应该会捕获任何隐式声明。 -
这很有趣。但是,我仍然对原始问题感兴趣。是否有任何编译器在其标准操作中不编译具有隐式声明的程序?
-
编译器已为您发出诊断。忽略此诊断意味着程序将具有未定义的行为。除非您从不打算更改编译器或升级您的编译器,否则应将警告视为错误。
标签: c compilation compiler-errors compiler-warnings