2017-09-28 5 views
3

내 dev 컴퓨터에서 다음 명령으로 프로젝트를 빌드해도 오류가 발생하지 않습니다.동일한 플래그를 사용하는 clang 및 gcc의 동작 차이점은 무엇입니까?

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

분명히 clang이 허용되고 c89 플래그 아래에 c99 코드를 허용합니다.