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

时间:2017-09-28 21:32:42

标签: c gcc clang

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

clang -Wall -std=c89 main.c

但是,在另一台具有gcc的计算机上,使用以下命令会产生错误。

gcc -Wall -std=c89 main.c

main.c:65: error: 'for' loop initial declaration used outside C99 mode

为什么这种行为存在差异?

以下是我使用的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)

1 个答案:

答案 0 :(得分:1)

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