質問です。

・ 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」と表示されないのはなぜ?