onlinegdb 上的 gcc 总是与 CentOS 7 上的 gcc 一致吗?

onlinegdb 上的 gcc 总是与 CentOS 7 上的 gcc 一致吗?

gcc 是否有任何依赖于操作系统的东西会导致两个版本之间发生有意义的变化?这两个版本还有区别吗?只是想确定一下,因为我在 onlinegdb 上测试了我的代码,但在提交之前,我偏执地在我学校的 CentOS 服务器上编译并检查了它。我想知道这是否有必要。

答案1

同意@fox,但此外还有平台相关的行为和未定义的行为(GCC 试图在可能的情况下定义这些行为)。这些可能因平台操作系统和硬件而异。然而,Gcc 将尽力保持一致(如果可以的话)。

差异的一个例子是大小long intsize_t数据类型可能是 32 位或 64 位。 (在其他编译器上它们也可能是 8 位或 16 位)。

答案2

你提到的网站目前正在使用GCC 5,而CentOS似乎至少使用GCC 7。但这就是我们有标准的原因。有效的 C99 代码可以在任一平台上编译。它将运行相同的(尽管可能更快或更慢),除非您正在执行诸如使用特定于平台的库或“不正确”序列化结构而不关心字节顺序(如果主机体系结构不同)之类的操作

tl;dr:对于你在学校要做的事情,这些差异不太可能有意义

相关内容