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

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