プログラミングtips

基本的なお役立ち情報 とか.主にCとPerl.

[C] Windows x64 + MinGW + gcc で long double の挙動がおかしい?

  • MinGW + gcc 環境で,long double 型の変数を printf するとおかしい数値が表示される問題.( 19690185614481596000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000とか)
  • 原因は MinGW が Microsoft の msvcrt.dll に依存していて,long double を double と同じビット数であると認識してしまうことによるもの.
  • 解決策として,printf を __mingw_printf に書き換えればOK
    #define printf __mingw_printf
    とする.
  • 参考: c - printf and long double - Stack Overflow : http://stackoverflow.com/questions/4089174/printf-and-long-double

[Perl] 変数の初期化

my $a = 0;
$a++;
print $a;  # 1

my $a;
$a++;
print $a;  # 1

my $a++;
print $a;  # 1

は同じ.

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS