メインページ | アルファベット順一覧 | データ構造 | ファイル一覧 | データフィールド | グローバル | 関連ページ

macro.h

C言語の定義(独自拡張アリ・・・) [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define SWAP_NUM(a, b)
 正統派 整数、実数専用スワップ
#define SWAP_NUM_EX(a, b, ex)
#define SM_OFFSET(p_type, field)   ((unsigned int)&(((p_type)NULL)->field))
 構造体のオフセットを求める Struct Member Offset
#define SET_RECT(rect, l, t, r, b)
 RECT構造体に入れる。
#define DKUTIL_ARRAY_NUMOF(array)   (sizeof(array)/sizeof(array[0]))
 配列の数を数える
#define DKUTIL_NAMELINK(X, Y)   X##Y
 名前を合わせる。
#define DKUTIL_MAKESIGNATURE(X)   DKUTIL_NAMELINK(X,__LINE__)
 シグネチャの名前を作る。
#define DKUTIL_MAKE_UINT_ID(id)
#define DKUTIL_FLAG_DOWN(x, n)   {x &= ~n;}
 http://d.hatena.ne.jp/paserry/ paserry氏に教えていただく。m(_ _)m
#define DKUTIL_FLAG_UP(x, n)   {x |= n;}
 フラグアップマクロ。これは常識。
#define DKUTIL_FLAG_UP_N(x, n)   DKUTIL_FLAG_UP(x,(1 << n))
 UINT系変数の左からNビット目のフラグをアップさせる。注意:0からはじまると思う。
#define DKUTIL_FLAG_DOWN_N(x, n)   DKUTIL_FLAG_DOWN(x,( 1<<n ))
#define DKUTIL_SAFE_REALLOC(b, s)   realloc(b,s)
#define DKUTIL_SAFE_MALLOC(s)   malloc(s)
#define DKUTIL_SAFE_FREE(a)   if(a){free(a);a=NULL;}
#define DKUTIL_STRUCTURE_INIT(s)   memset(&(s),0,sizeof(s))
#define DKUTIL_MEMZERO(mem__, size__)   memset(mem__,0,size__)
 ZeroMemory()みたいなもの
#define DKUTIL_ARRAY_ZERO(arr)   DKUTIL_MEMZERO(arr,sizeof(arr))
 配列を初期化する
#define NULL_CHAR_ARRAY(s)   DKUTIL_ARRAY_ZERO(s)
 CHARの配列を初期化する。
#define SET_VA_LIST_C(VaList, r, buff, buffnum, origin)
#define DKUTIL_BIT_TO_BYTE(a)   (a / 8)


説明

C言語の定義(独自拡張アリ・・・)

作者:
d金魚
から:
2003/9/13 reconstruct:2005/01/17

macro.h で定義されています。


マクロ定義

#define DKUTIL_ARRAY_NUMOF array   )     (sizeof(array)/sizeof(array[0]))
 

配列の数を数える

macro.h48 行で定義されています。

#define DKUTIL_ARRAY_ZERO arr   )     DKUTIL_MEMZERO(arr,sizeof(arr))
 

配列を初期化する

macro.h143 行で定義されています。

#define DKUTIL_BIT_TO_BYTE  )     (a / 8)
 

macro.h159 行で定義されています。

#define DKUTIL_FLAG_DOWN x,
 )     {x &= ~n;}
 

http://d.hatena.ne.jp/paserry/ paserry氏に教えていただく。m(_ _)m

macro.h60 行で定義されています。

#define DKUTIL_FLAG_DOWN_N x,
 )     DKUTIL_FLAG_DOWN(x,( 1<<n ))
 

参照:
DKUTIL_FLAG_UP_N() 左からnビット目のフラグをダウンさせる。

macro.h69 行で定義されています。

#define DKUTIL_FLAG_UP x,
 )     {x |= n;}
 

フラグアップマクロ。これは常識。

macro.h62 行で定義されています。

#define DKUTIL_FLAG_UP_N x,
 )     DKUTIL_FLAG_UP(x,(1 << n))
 

UINT系変数の左からNビット目のフラグをアップさせる。注意:0からはじまると思う。

macro.h66 行で定義されています。

#define DKUTIL_MAKE_UINT_ID id   ) 
 

値:

((((UINT)(id) & 0xFF) << 24) |     \
                  (((UINT)(id) & 0xFF00) << 8) |    \
                  (((UINT)(id) & 0xFF0000) >> 8) |  \
                  (((UINT)(id) & 0xFF000000) >> 24))
引数:
id[in] example 'abcd'
戻り値:
unsigned int

macro.h54 行で定義されています。

#define DKUTIL_MAKESIGNATURE  )     DKUTIL_NAMELINK(X,__LINE__)
 

シグネチャの名前を作る。

macro.h52 行で定義されています。

#define DKUTIL_MEMZERO mem__,
size__   )     memset(mem__,0,size__)
 

ZeroMemory()みたいなもの

macro.h139 行で定義されています。

#define DKUTIL_NAMELINK X,
 )     X##Y
 

名前を合わせる。

macro.h50 行で定義されています。

#define DKUTIL_SAFE_FREE  )     if(a){free(a);a=NULL;}
 

macro.h136 行で定義されています。

#define DKUTIL_SAFE_MALLOC  )     malloc(s)
 

macro.h135 行で定義されています。

#define DKUTIL_SAFE_REALLOC b,
 )     realloc(b,s)
 

macro.h134 行で定義されています。

#define DKUTIL_STRUCTURE_INIT  )     memset(&(s),0,sizeof(s))
 

macro.h137 行で定義されています。

#define NULL_CHAR_ARRAY  )     DKUTIL_ARRAY_ZERO(s)
 

CHARの配列を初期化する。

macro.h145 行で定義されています。

#define SET_RECT rect,
l,
t,
r,
 ) 
 

値:

{\
    rect##.left   = l;\
    rect##.top    = t;\
    rect##.right  = r;\
    rect##.bottom = b;\
}
RECT構造体に入れる。

macro.h38 行で定義されています。

#define SET_VA_LIST_C VaList,
r,
buff,
buffnum,
origin   ) 
 

値:

{\
    va_start( VaList , origin ) ;\
    r = _vsnprintf( buff ,buffnum - 1, origin , VaList );\
    if(0 > r){\
        buff[buffnum - 1] = '\0';\
    }else{\
        buff[r+1] = '\0';\
    }\
    va_end( VaList ); \
}

macro.h147 行で定義されています。

#define SM_OFFSET p_type,
field   )     ((unsigned int)&(((p_type)NULL)->field))
 

構造体のオフセットを求める Struct Member Offset

覚え書き:
//example
UINT get_offset = SM_OFFSET(_WIN32_FIND_DATA *,dwReserved1);

macro.h35 行で定義されています。

#define SWAP_NUM a,
 ) 
 

値:

(a) = (b) - (a) ;\
    (b) -= (a) ;\
    (a) += (b)
正統派 整数、実数専用スワップ

macro.h14 行で定義されています。

#define SWAP_NUM_EX a,
b,
ex   ) 
 

値:

(ex)(a) = (ex)((b) - (a) ); \
    (ex)(b) = (ex)((b) - (a) ); \
    (ex)(a) = (ex)((a) + (b) )
参照:
SWAP_NUM
引数:
ex[in] 型名 char 等

macro.h22 行で定義されています。


dkutil_cstdに対してSat Sep 10 09:19:23 2005に生成されました。  doxygen 1.4.4