Cygwin + MinGW + GCC 相談室 Part 8 (985レス)
Cygwin + MinGW + GCC 相談室 Part 8 http://mevius.5ch.net/test/read.cgi/tech/1411399211/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
944: デフォルトの名無しさん [sage] 2023/12/24(日) 13:46:07.33 ID:zZdFC2zj 質問です。 ・ OS は windows10 で、最近 MinGW-w64 を導入した。 ・ 下記の test.cpp ファイルに対して g++ -m64 -o test5 test.cpp と実行。 test.cpp #include <stdio.h> #include <stdint.h> int main(){ printf("%d %x %zu", sizeof(long), sizeof(long), sizeof(long)); getchar(); return 0; } ・ 出力された test5.exe を実行してみると、なぜか「4 4 4」と表示されてしまい、 「8」が1個もない。64ビット環境では、sizeof(long) は「8」なのでは? ・ test5.exe を右クリックして互換モードの欄を見てみると、 Vista 以降のものしか表示されないので、 ちゃんと64ビット版の実行ファイルになっている (他にも色々な確認方法があるが、いずれも64ビット版に合致する)。 ・ それなのに「8」と表示されないのはなぜ? http://mevius.5ch.net/test/read.cgi/tech/1411399211/944
945: はちみつ餃子 ◆8X2XSCHEME [sage] 2023/12/24(日) 15:28:23.49 ID:SfA3xmSz >>944 > 64ビット環境では、sizeof(long) は「8」なのでは? 単にその認識が誤り。 64ビット版の Windows の ABI では long は 4 バイトと規定してる。 https://learn.microsoft.com/ja-jp/cpp/build/x64-software-conventions?view=msvc-170#scalar-types コンパイラが OS の規定に逆らって独自の仕様にしたってかまわないんだけど、 やりとりがややこしくなっちゃうだけで得なことはないからね。 http://mevius.5ch.net/test/read.cgi/tech/1411399211/945
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.041s