MSVC和CLang编译器都是支持UTF8编码的,也就是说是支持中文命名方式的.
下面说一下他们之间的区别吧!
如果是入门,中国人学习C语言最好是使用MSVC,因为它的帮助及提示全是中文的,而且和QT的结合程度要比Clang要好.
如果是想正规学习C语言而不是C++语言规范,建议使用Clang编译器,MSVC对C语言的支持不是很好,并且不支持X64汇编(只支持X86汇编).
windows平台学习C语言使用MSVC编译器,linux使用GCC编译器,MAC平台使用Clang编译器,这是最佳的组合.
[最为推荐的方案]:在程序准备发布时,分别使用MSVC和Clang编译器检查错误及警告.最终发布时windows平台使用MSVC,其他平台使用CLang.
生成最终文件编码不同
MSVC不管源C文件是GBK还是UTF8编码,生成的exe文件都是GBK的.而windows控制台本身就是GBK编码,所以一般不会出错.
CLang生成的最终exe文件编码是根据源C文件编码而定的,如果源C文件是GBK,就生成GBK的.如果源C文件是UTF8的就生成UTF8的.
但GBK的源C文件不支持中文命名,我们需要使用英文命名方案,这无形增加我们的学习成本.一般使用UTF8的源C文件编码即可,完美支持中文命名方案.
错误或警告提示
在源C文件为UTF8的情况下,Clang的错误提示更加严格,但提示都是英文的,不过没有关系,翻译一下即可.(完美支持最新C/C++标准).
MSVC的错误提示不是很智能,很多错误提示都显示不出来,不利于学习C标准(MSVC对C/C++标准支持不完善,但如果只用C++会比较友好).
兼容性
MSVC有很多老的项目都可以正确在win7系统上运行,win10也是没有问题的,但不支持Linux和MAC系统.
CLang兼容性没有MSVC好,如"firefox浏览器"使用的是Clang编译的,在win7系统下运行不怎么好,在win10无问题,但它支持linux和MAC系统.
这样子说并不代表CLang不支持win7,它不仅完美支持win7还支持XP,只是由于我们在编辑软件的时候使用的是win10的SDK,自然对win7不友好.
如:OBS Studio在win7系统下兼容性不怎么好,且win7已经停止更新了,更多的人会选择win10.只是由于很多人不会优化win10,导致体验不好.
Clang兼容GCC和MSVC的标准代码,反过来GCC不兼容CLang,MSVC也是不兼容Clang的标准代码的.[Clang支持windows/linux/mac平台]
MSVC只支持Windows平台,且只对C++和Windows SDK支持友好,像C或其他东西,支持的效果不行.
另外说一下GCC这个编译器,真正的全能,几乎支持所有语言,但由于支持的太多了,生成效率和运行速度不如MSVC和Clang.
Debug和Release文件大小
Debug调试的时候,生成的文件体积,MSVC的大小是CLang的是1.5倍,我们测试了MFC和控制台应用都是这样子.
Release方面,由于MSVC和Clang编译器底层都是使用的Windows专用的CL编译,体积MSVC比Clang只大1kb,几乎可以说是相同的大小.
所以Clang更多的体现是在调试Debug的时候,可以更有效的发现问题并去解决,节省了非常宝贵的时间.
【你乐科技版权】站内所发布的一切原创内容,转载请说明是由《你乐科技》发布,内容仅限用于学习和研究,不得用于商业或非法用途,否则,一切后果请用户自负。本站信息部分来自网络,版权争议与本站无关。您必须在下载后的24小时内,彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
邮箱地址:nilekeji@163.com
最后于 9月前
被酷乐Happy编辑
,原因: