LONGLONGの%d

  • デル株式会社
  •  

     

    LONGLONG型を%dしても当然だが上手く表示されない。%dは4バイトだから。
    LONGLONG型は別の型指定をしないと駄目。

    LONGLONG nn = LLONG_MAX;
    printf( “%I64d\n”,nn);

    『%I64d』、『%I64u』、『%I64o』、『%I64x』
    を使いましょう。

    ※追記
    VC2005では %lld ってのもあるみたいです。
    しかし%lldってのは下位互換しないようなので%I64d の方を使う方がお利口さんだと思います。

    また、ちょっと横道にそれますがHWNDをintにキャストしようとするとワーニングが出ます。
    これはVC2003?あたりから64ビット対応マシンを見据えたコンパイラになった為です。
    こういうときにはLONGLONGをつかいましょう。

    //int nhWnd = (int)this->GetSafeHwnd(); //こいつはわーにんぐ
    LONGLONG llhWnd = (LONGLONG)this->GetSafeHwnd();

    数字型に変換されたハンドルはこう使います。
    HWND hwnd = (HWND)llhWnd;

     

     

    関連記事

    ページ上部へ戻る