問題タブ [gcc3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
88 参照

c - GCC 3.2、4.4、および 5.4 で C89 で long long を有効にする

私はかなり制限された環境で C89 で作業しています。GCC 4.4 に基づくコンパイラー用に作成する必要がありますが、コードは GCC 3.2 でコンパイルされたテストにも合格する必要があります。私たちの毎日の開発コンパイラは GCC 5.4 です。私のお金では、これは聞こえるほど狂っていますが、これらは私が配られたカードです。

64 ビット整数が必要なため、使用するために C89 ルールを緩和する手順を実行しましたlong long。最初のコードは、次のように問題を処理します。

残念ながら、これは GCC 4.4 では機能しません。プッシュ操作とポップ操作が GCC 4.6 で導入されたため、次のように変更しました。

悲しいかな、GCC 3.2 はそれを好まない:

でコンパイルされているのを見ると、GCC 3.2 のリリース時には存在しなかったのではない-Wunknown-pragmasかと思います。#pragma GCC diagnostic

誰でも解決策を提案できますか?