C言語のマクロについてです。C言語のマクロには落とし穴が多いので、マクロをマスターして引っかからないようにしましょう。そしてC言語の達人になってください。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
/*
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)))
PR
/*
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)))
/*
DEBUG_PRINT
デバッグ用出力
<概要>
指定のパラメータで標準エラー出力に出力する
<返却>
書き出された文字数。失敗なら負の値。
<引数>
...:出力書式と内容
<備考>
出力方法はprintfと同じ。
マクロの可変引数はC99より。
*/
#define DEBUG_PRINT(...) (fprintf(stderr, __VA_ARGS__))
ブログ内検索
最新記事
(03/31)
(03/31)
(03/30)
(03/30)
(03/30)
最古記事
(03/23)
(03/24)
(03/25)
(03/26)
(03/27)