使用相同标志的clang和gcc在行为上的差异?
在我的开发机器上,使用以下命令生成我的项目不会产生错误使用相同标志的clang和gcc在行为上的差异?,c,gcc,clang,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
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代码