マクロ定義(C言語)
デバッグ用
デバッグのためのマクロ定義の使い方の例。
案外、こういうのは技術書に書いていないsngm45.icon
#if 0~#else で囲まれたコードは無効化され、#else~#endifが有効化される。
逆にしたいなら、#if 1とする。
あくまで開発時のデバッグ用。消し忘れに注意(#if 1にするのではなく、消す)。
code:Macro for debugging
func1();
func2();
#if 0のかわりに、#ifdef NANIKA_MACROといった書き方もできる。
NANIKA_MACROが(include先を含めて)どこかに定義されていれば、通る。
機能切り替え
OSやプラットフォームなどのオプション次第で、同一ソースコードの動作を変えることができる。
例↓
ここでは、IGNORE_ERRORは「エラーを無視する」マクロ。
IGNORE_ERRORが定義されている場合、エラーチェックを行わない。 IGNORE_ERRORが定義されていない場合、エラーチェックを行う。
code:macro for switch option
uint8 val;
val = func1();
if (ret < 0)
{
/* エラー処理 */
}
else
{
func2(val);
}
定義済マクロ
References