忍者ブログ
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)))
ブログ内検索
バーコード
アーカイブ

Copyright © [ C言語のマクロ ] All rights reserved.
Special Template : 忍者ブログ de テンプレート
Special Thanks : 忍者ブログ
Commercial message : [PR]