JohnnyApplesauce Asked: 2020-02-01 06:35:09 +0800 CST2020-02-01 06:35:09 +0800 CST 2020-02-01 06:35:09 +0800 CST onlinegdb 上的 gcc 是否总是与 CentOS 7 上的 gcc 一致? 772 是否有任何依赖于操作系统的 gcc 会导致两个版本之间发生有意义的变化?这两个版本甚至不同吗?只是想确定一下,因为我在 onlinegdb 上测试了我的代码,但在提交之前偏执地编译并在我学校的 CentOS 服务器上检查它。我想知道这是否有必要。 centos gcc 2 个回答 Voted Best Answer ctrl-alt-delor 2020-02-01T09:40:17+08:002020-02-01T09:40:17+08:00 同意@fox,但另外还有平台相关的行为和未定义的行为(GCC 试图在可能的地方定义这些)。这些可能因平台操作系统和硬件而异。但是 Gcc 会尽量保持一致(在可能的情况下)。 差异的一个例子是数据的大小long int和size_t数据类型可能是 32 位或 64 位。(在其他编译器上,它们也可能是 8 位或 16 位)。 Fox 2020-02-01T07:31:50+08:002020-02-01T07:31:50+08:00 您提到的网站目前使用的是 GCC 5,而 CentOS 似乎至少使用 GCC 7。但这就是我们有标准的原因。有效的 C99 代码可以在任一平台上编译。它将运行相同(尽管可能更快或更慢),除非您正在执行诸如使用特定于平台的库或“错误地”序列化结构而不关心字节序(如果主机架构不同) tl;博士:对于你为学校做的事情,这些差异不太可能有意义
同意@fox,但另外还有平台相关的行为和未定义的行为(GCC 试图在可能的地方定义这些)。这些可能因平台操作系统和硬件而异。但是 Gcc 会尽量保持一致(在可能的情况下)。
差异的一个例子是数据的大小
long int
和size_t
数据类型可能是 32 位或 64 位。(在其他编译器上,它们也可能是 8 位或 16 位)。您提到的网站目前使用的是 GCC 5,而 CentOS 似乎至少使用 GCC 7。但这就是我们有标准的原因。有效的 C99 代码可以在任一平台上编译。它将运行相同(尽管可能更快或更慢),除非您正在执行诸如使用特定于平台的库或“错误地”序列化结构而不关心字节序(如果主机架构不同)
tl;博士:对于你为学校做的事情,这些差异不太可能有意义