none
グローバルな構造体のメンバ変数のアドレスの取得のやり方 RRS feed

すべての返信

  • struct Hoge

    {

      int a;

      int b;

      ...

    };

     

    Hoge g_hoge;

     

    void func()

    {

      DWORD* pA = (DWORD*)&(g_hoge.a);

      //PINT_PTR pA = &(g_hoge.a);

      //int* pA = &(g_hoge.a);

    }

     

    っていうことですか?

     

    2007年4月6日 12:59
  • 私の場合は以下のようにします。

    [ヘッダーファイル(hoge.h)]
    struct Hoge
    {
      int a;
      int b;
      ...
    };

    extern Hoge g_hoge;
     
    [グローバル変数の実体のあるソース]
    #include "hoge.h"

    Hoge g_hoge;


    [グローバル変数を参照するソース]
    #include "hoge.h"

    void func()
    {
        Hoge*   psHoge;
        int*    pA;
        int*    pB;
       
        psHoge = &g_hoge;

      pA = &(psHoge->a);
        pB = &(psHoge->b);

    }



    速度を考えたら、関数の記述はchack - Akira Inoueさんの記述の方が速くなると思いますが、
    同じ型の他の変数でも使い回しができるように、上記の記述をしています。

    2007年4月11日 2:00