C言語のマクロについてです。C言語のマクロには落とし穴が多いので、マクロをマスターして引っかからないようにしましょう。そしてC言語の達人になってください。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
/*
DECREMENT
デクリメント
<概要>
引数から1を引く。0なら指定値に戻す。
<返却>
1引かれた数
<引数>
x:デクリメント対象値
max:最大値
<備考>
返却値はmax未満。
1引いた後の値が負ならmax-1を返却。
*/
#define DECREMENT(x, max) \
(((x) = (x) - 1) < 0 ? ((x) = (max) - 1) : (x))
PR
/*
MEMBER_SIZE
構造体メンバのサイズ取得
<概要>
指定された構造体のメンバのサイズを返す
<返却>
指定された構造体のメンバのサイズ
<引数>
type:構造体
member:構造体のメンバ
<備考>
特になし
*/
#define MEMBER_SIZE(type, member) (sizeof(((type*)0)->member))
/*
BEEP
警告音を鳴らす
<概要>
警告音を鳴らす
<返却>
出力文字数。失敗の場合EOF。
<引数>
なし
<備考>
特になし
*/
#define BEEP() (fputc('\a', stderr))
ブログ内検索
最新記事
(03/31)
(03/31)
(03/30)
(03/30)
(03/30)
最古記事
(03/23)
(03/24)
(03/25)
(03/26)
(03/27)