C言語のマクロについてです。C言語のマクロには落とし穴が多いので、マクロをマスターして引っかからないようにしましょう。そしてC言語の達人になってください。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
/*
ELEMENT_NUM
配列要素数取得
<概要>
配列の要素数を取得する。
<返却>
配列の要素数
<引数>
array:配列名
<備考>
引数はポインタではない。
*/
#define ELEMENT_NUM(array) (sizeof(array) / sizeof((array)[0]))
PR
/*
CALC_CLOCK
処理時間表示
<概要>
ソースコードとループ回数を指定すると
処理にかかったプロセッサ時間を表示する
<返却>
なし
<引数>
code:ソースコード
n:ループ回数
<備考>
使用例:CALC_CLOCK(x = cos(x), 1000000UL);
*/
#define CALC_CLOCK(code, n) do { \
int i; \
clock_t t = clock(); \
for (i=0;i<n;i++) { code; } \
printf("%d\n", clock() - t); \
} while (0)
/*
MAX3
最大値取得
<概要>
指定された3引数のうちの最大のものを返す
<返却>
最大値
<引数>
a,b,c:最大値を選ぶ対象
<備考>
引数の複数回評価有。
*/
#define MAX2(a, b) ((a) > (b) ? (a) : (b))
#define MAX3(a, b, c) ((a) > (MAX2(b, c)) ? (a) : (MAX2(b, c)))
ブログ内検索
最新記事
(03/31)
(03/31)
(03/30)
(03/30)
(03/30)
最古記事
(03/23)
(03/24)
(03/25)
(03/26)
(03/27)