onlinegdbのgccは常にCentOS 7のgccと一致しますか?

onlinegdbのgccは常にCentOS 7のgccと一致しますか?

2つのバージョン間で意味のある変更を引き起こすgccのOS依存関係はありますか?これら2つのバージョンの間に違いはありますか?私はonlinegdbで私のコードをテストしたので確認したかったのですが、コミットする前に学校のCentOSサーバーでコードをコンパイルして確認することについて編集証がありました。これが必要かどうか疑問に思います。

答え1

@foxに同意します。ただし、プラットフォーム固有の動作と未定義の動作(GCCが可能な場合は定義しようとする)もあります。これは、プラットフォームのオペレーティングシステムとハードウェアによって異なる場合があります。しかし、Gccは可能であれば一貫性を維持しようとします。

違いの例には、32ビットまたは64ビットのサイズlong intとデータ型があります。size_t(他のコンパイラでは8ビットまたは16ビットでもかまいません)。

答え2

言及されているウェブサイトは現在GCC 5を使用していますが、CentOSはGCC 7以降を使用しているようです。しかし、それが私たちが標準を持っている理由です。有効なC99コードは、どのプラットフォームでもコンパイルできます。プラットフォーム固有のライブラリを使用したり、エンディアンを考慮せずに構造を「不正確に」シリアライズするなどの操作を行わない限り(ホストアーキテクチャが異なる場合)、同じように実行されます(より高速または遅くなる可能性があります)。

要約:これらの違いは、学校でやろうとしていることに意味がないようです。

関連情報