有人知道不依赖gcc的C编译器吗?

我试图查看我的代码是否可移植到GCC以外的许多编译器以及绝对接受GNU C方言的编译器之外,因为我使用了很多扩展名和属性。 对于属性,我已经使用运算符_has_attribute来检查属性的功能是否已实现,但是对于扩展,并不是那么容易。 因此,我需要对程序的可移植性进行一些测试,以查看应修改的内容。 有人知道不依赖gcc的编译器吗?

kankankankan123 回答:有人知道不依赖gcc的C编译器吗?

一个这样的编译器是Oracle Developer Studio。实际上,这提供了一些非常好的工具,尤其是用于多线程进程分析。

您还可以使用GCC的-std-Wpedantic-pedantic-errors选项来检查不可移植的代码。参见3.4 Options Controlling C Dialect。例如,gcc -std=c11 -Wpedantic -pedantic-errors ...应该只允许通过严格符合要求的C11代码,而不会发出警告或错误。您还可以添加Werror,以在出现任何警告时引起错误。

,

有些不基于gcc的编译器,例如clang或MSVC,但是我认为您从最佳角度来看并没有解决此问题。

有一个标准可以精确地指定语言包含哪些功能(即我们所说的 portable ),还有一些编译器文档介绍了哪些功能是扩展。语言。您应该通过阅读可用的文档并了解功能是否真正可移植或否来解决此问题。如果不是,那么其他编译器实现它们的情况就很普遍。

本文链接:https://www.f2er.com/3128754.html

大家都在问