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コードは、どのプラットフォームでもコンパイルできます。プラットフォーム固有のライブラリを使用したり、エンディアンを考慮せずに構造を「不正確に」シリアライズするなどの操作を行わない限り(ホストアーキテクチャが異なる場合)、同じように実行されます(より高速または遅くなる可能性があります)。
要約:これらの違いは、学校でやろうとしていることに意味がないようです。