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))
ブログ内検索
最新記事
(03/31)
(03/31)
(03/30)
(03/30)
(03/30)
最古記事
(03/23)
(03/24)
(03/25)
(03/26)
(03/27)