忍者ブログ
C言語のマクロについてです。C言語のマクロには落とし穴が多いので、マクロをマスターして引っかからないようにしましょう。そしてC言語の達人になってください。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

/*
	MIN3
	最小値取得

	<概要>
	指定された3引数のうちの最小のものを返す
	<返却>
	最小値
	<引数>
	a,b,c:最小値を選ぶ対象
	<備考>
	引数の複数回評価有。
*/
#define MIN2(a, b) ((a) < (b) ? (a) : (b))
#define MIN3(a, b, c) ((a) < (MIN2(b, c)) ? (a) : (MIN2(b, c)))
PR
/*
	DEBUG_PRINT
	デバッグ用出力

	<概要>
	指定のパラメータで標準エラー出力に出力する
	<返却>
	書き出された文字数。失敗なら負の値。
	<引数>
	...:出力書式と内容
	<備考>
	出力方法はprintfと同じ。
	マクロの可変引数はC99より。
*/
#define DEBUG_PRINT(...) (fprintf(stderr, __VA_ARGS__))
/*
	INCREMENT
	インクリメント

	<概要>
	引数に1を足す。指定値になったら0にする。
	<返却>
	1足された数
	<引数>
	x:インクリメント対象値
	max:最大値
	<備考>
	返却値はmaxにはならない。
	1足した後の値がmaxなら0を返却。
*/
#define INCREMENT(x, max) ((x) = ((x) + 1) % (max))
ブログ内検索
バーコード
アーカイブ

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