エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
do-while(0)によるマクロラッピング | 闇夜のC++
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
do-while(0)によるマクロラッピング | 闇夜のC++
inline関数やconst変数を使ってもC言語時代に#defineマクロによって実現していたことの全てをカバーでき... inline関数やconst変数を使ってもC言語時代に#defineマクロによって実現していたことの全てをカバーできるわけではありません。 今でもCPP(C Pre Processor)の力は偉大です。 特に、ビルドレベルに応じて違う挙動になるような処理を実現するには#defineによるマクロは有効な選択です。 以下のような要件を満たすマクロを考えてみましょう 開発中のみ有効 ある条件を与えて結果が偽ならログ出力 #ifdef _DEBUG #define DEBUG_LOG(exp, ...) do {if (!(exp)){std::printf(__VA_ARGS__);}} while(0) #else #define DEBUG_LOG(exp, ...) do {(void)(exp);} while(0) #endif以下のように使います。 int main() { int