C(gcc 6.5.0)和C(clang 6.0.1),C(gcc 6.5.0)魔幻编译错误
刚刚刷PAT,害,在PAT上提交代码的时候,不清楚C(gcc 6.5.0)和C(clang 6.0.1)有什么区别,默认C(gcc 6.5.0)提交,结果就一直报错,在DEV上运行也是正确的,就在我粘贴复制到PAT的时候,一直提示我编译错误,迷了,看了描述信息,好像是数组school的问题,看了一下,我在想是不是数组太大了,要定义在main函数的外面呢,结果还是编译错误,之后又去了DEV上测试,还是正确的啊,肯定不是代码的问题了,看到下面C(clang 6.0.1),就顺手试了一下,额,柳暗花明,编译通过了,于是乎百度了C(gcc 6.5.0)和C(clang 6.0.1)有什么区别,原来是因为
GCC特性:除支持C/C++/ Objective-C/Objective-C++语言外,还是支持Java/Ada/Fortran/Go等,当前的Clang的C++支持落后于GCC;支持更多平台;更流行,广泛使用,支持完备。
Clang特性:编译速度快;内存占用小;兼容GCC;设计清晰简单、容易理解,易于扩展增强;基于库的模块化设计,易于IDE集成;出错提示更友好。