Windows (MinGW) および Linux (g++) 用の C++ でクロスプラットフォーム コードを記述しようとしています。Linux では 64 ビット整数を「long」と定義していましたが、MinGW に移行すると、sizeof(long) は 4 バイトを返しました。その後、「long long」または「__INT64」を使用して、MinGW で 64 ビット整数を定義できることを発見しました。2 つの質問があります。
1.-Windows と Linux の両方で 64 ビット整数を定義する最も移植性の高い方法は何ですか? 現在 #ifdef を使用していますが、これが最適な方法かどうかはわかりません。
#ifdef LINUX
#define INT64 long
#elif WIN32
#define INT64 long long
#endif
2.- MinGW で「long long」または「__INT64」を使用する必要がありますか? なぜ?