概要

参考:

C言語のマクロについてまとめる – Qiita

C言語のマクロの詳細 | C言語

C言語の高度なマクロ機能を活用したプログラミング | IAR

条件分岐/論理演算

  • #ifdef マクロが定義されている場合にコードが有効となる
  • #ifndef マクロが定義されていない場合にコードが有効となる
  • defined マクロが定義されている場合に、真となる
  • && 論理積 (and)
  • || 論理和 (or)

ドキュメント:

#if / #elif / #else / #endif ディレクティブ | Microsoft Learn [公式]

参考:

プリプロセッサ条件分岐/OR 条件 – Qiita

条件付きコンパイル #1 – Qiita

条件付きコンパイル #2 – Qiita

字句結合/文字列化

演算子
  • ## トークン連結演算子 (トークンを連結する)
  • # 文字列化演算子 (パラメータの内容を文字列リテラルに変換する)

ドキュメント:

トークン連結演算子 | Microsoft Learn [公式]

文字列化演算子 | Microsoft Learn [公式]

参考:

いまさらだけど文字列化演算子とトークン連結演算子について理解する | いざどりの trial and error

文字列化/トークン連結演算子 | C++プログラマ キャスブログ

#と##演算子 | WisdomSoft

字句の結合や文字列化を行う際のマクロ置換動作をよく理解する | JPCERT

C言語で文字列リテラル又はマクロを連結する方法 – Qiita

プリプロセッサで文字列を結合する | まくまくノート

C言語での define 定義で文字列を連結したい – Yahoo! 知恵袋

プリプロセッサ演算子

ドキュメント:

プリプロセッサ演算子 | Microsoft Learn [公式]

Tips

C言語のマクロの注意点 | C言語

C言語こんなことできるんだ集 | ryo

まとめ

関数形式マクロ | Programming Place Plus

マクロの機能 | ContentsViewer

プリプロセッサでプログラムの質を向上させよう | @IT

記事をシェアする:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA