概要
参考:
C言語の高度なマクロ機能を活用したプログラミング | IAR
条件分岐/論理演算
#ifdef
: マクロが定義されている場合にコードが有効となる#ifndef
: マクロが定義されていない場合にコードが有効となるdefined
: マクロが定義されている場合に、真となる&&
: 論理積 (and)||
: 論理和 (or)
ドキュメント:
#if / #elif / #else / #endif ディレクティブ | Microsoft Learn [公式]
参考:
字句結合/文字列化
演算子
##
: トークン連結演算子 (トークンを連結する)#
: 文字列化演算子 (パラメータの内容を文字列リテラルに変換する)
ドキュメント:
トークン連結演算子 | Microsoft Learn [公式]
文字列化演算子 | Microsoft Learn [公式]
参考:
いまさらだけど文字列化演算子とトークン連結演算子について理解する | いざどりの trial and error
文字列化/トークン連結演算子 | C++プログラマ キャスブログ
字句の結合や文字列化を行う際のマクロ置換動作をよく理解する | JPCERT
C言語で文字列リテラル又はマクロを連結する方法 – Qiita
C言語での define 定義で文字列を連結したい – Yahoo! 知恵袋
プリプロセッサ演算子
ドキュメント:
プリプロセッサ演算子 | Microsoft Learn [公式]