Centos
onlinegdb 上的 gcc 是否總是與 CentOS 7 上的 gcc 一致?
是否有任何依賴於作業系統的 gcc 會導致兩個版本之間發生有意義的變化?這兩個版本甚至不同嗎?只是想確定一下,因為我在 onlinegdb 上測試了我的程式碼,但在送出之前偏執地編譯並在我學校的 CentOS 伺服器上檢查它。我想知道這是否有必要。
同意@fox,但另外還有平台相關的行為和未定義的行為(GCC 試圖在可能的地方定義這些)。這些可能因平台作業系統和硬體而異。但是 Gcc 會盡量保持一致(在可能的情況下)。
差異的一個例子是數據的大小
long int
和size_t
數據類型可能是 32 位或 64 位。(在其他編譯器上,它們也可能是 8 位或 16 位)。
您提到的網站目前使用的是 GCC 5,而 CentOS 似乎至少使用 GCC 7。但這就是我們有標準的原因。有效的 C99 程式碼可以在任一平台上編譯。它將執行相同(儘管可能更快或更慢),除非您正在執行諸如使用特定於平台的庫或“不正確地”序列化結構而不關心字節順序(如果主機架構不同)
tl;博士:對於你為學校做的事情,這些差異不太可能有意義