トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
C
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ typedef


  DESC
    既存のデータ型( 基本型 )に別名をつける。

  POINT
    typedef YYY XXX;
    [ YYY を XXX と呼ぶ ]と Compiler に知らせる
使いどころは、意味があってわかりやすく短い名前をつける。
    typedef  map<  string, number >  MemberTable;

    MemberTable tbl;
または、環境ごとの型定義の違いを吸収するために使う。 マシンに依存する型を定義することで移植性が高まる。
    // 64bit サイズの整数型を i64 という名前で定義する

    #ifdef  __MSC_VER
    // VisualStudio 環境
    typedef  __int64    i64
    #else
    typedef   int64_t   i64
    #endif


    i64  i;  
namespace に収まる public , private の影響うける さらに Code 内の記述も可能. Block の影響をうける。
    // Scope 内で有効
    typedef Foo Delegator;
    Delegator d;


    // int 型の vector を List と呼ぶ
    typedef std::vector< int> List;
    List v;


    // T 型の Pointer を TPtr と呼ぶ
    typedef T * TPtr;


    typedef char *string // char * を string 型として定義
    typedef struct treenode *tree_ptr
    treeptr tnode;
    class bcls{
        typedef unsigned int UINT; // bcls name空間で有効
    }

     // ふたつ 定義することも可能.
    typedef typedef char TCHAR, *PTCHAR;

    // int 型のポインタを intptr と別名をつける
    typedef int *intptr;

    // 別名なので型チェックは元の型と同じ
    void func ( int *);
    intptr ip;
    fucn( ip );
少し厳密に. 記憶クラス指定子が [ typedef ] である宣言は Object の宣言ではなく, 型に対しての名前( 識別子 )をつける 識別子は [ typedef 名]と言う. POINT 新しい型の定義ではなく [ 既存型の同義語 ]を生成するにすぎない "基本型" は言語ごとに決まっている そのため 同一名で 2 回定義すると怒られる ( コンパイラはどれを参照すべきかわからない ) error C2371: 'T' : 再定義されています. 異なる基本型です
       typedef struct {
         float f;
       } T;

       typedef struct {
         int i;
       } T;
typedef した オリジナル型とは互換可能 別名にすぎないので元の型が int ならば, 比較演算子を利用できる。
    #include< windows2.h> 

    SOCKET  s = 2;

    int i = s + 10;

    // 12
    printf( "%d\n", i );

Tag( 名札 ) のない Enum, Struct, Union はすべて Uniq な型を指定 typedef Tset::Bar DEPRECATED Bar;
















NINJAIDX 16