c - 使用相同标志的 clang 和 gcc 的行为差异?

标签 c gcc clang

<分区>

在我的开发机器上,使用以下命令构建我的项目不会产生任何错误。

clang -Wall -std=c89 main.c

但是,在另一台有 gcc 的机器上,使用下面的命令会产生错误。

gcc -Wall -std=c89 main.c

main.c:65: 错误:'for' 循环初始声明在 C99 模式之外使用

为什么会有这种行为差异?

这是我使用的 clang 和 gcc 的版本。

clang --version
Apple LLVM version 9.0.0 (clang-900.0.37)

gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)

最佳答案

很明显 clang 是宽容的,接受 c89 标志下的 c99 代码。

关于c - 使用相同标志的 clang 和 gcc 的行为差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46478642/

相关文章:

c++ - 使用clang分析C++代码

objective-c - objective-c 中的前缀匹配

c++ - 为什么我不能运行目标文件?

c - GCC 预处理,内置行和命令行有什么用?

gcc和clang之间的C++不一致

c++ - 为什么使用三元运算符返回字符串会生成与在等效的 if/else block 中返回的代码截然不同的代码?

c - 为什么 SDL2 窗口会淡出?

C - Malloc 或 calloc ......以及如何?

c++ - 警告 : format not a string literal and no format arguments

c - Mex 在 Linux 中编译 C 代码时生成错误//