在我的开发机器上,使用以下命令构建我的项目不会产生错误。
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)
答案 0 :(得分:1)
显然clang是宽容的,接受c89标志下的c99代码。