C 言語のマクロ定義の演算ルール
C言語マクロ定義の演算規則は以下の通りです。
- マクロは型チェックを行わないため、マクロ定義中に型変換が必要
- マクロの定義では、定数、変数、演算子などを利用できます。
- マクロ定義内の演算子の優先順位はC言語と同じ。カッコを使って演算順序を変えることができます。
- マクロ定義では、条件文やループを含んだ制御構造を利用できます。
- マクロ定義のコードはプログラムに直接置換されるので、マクロ定義のコードが構文規則に従っているかどうか注意が必要です。
- マクロ定義では # と ## 演算子を使えます。# はマクロ引数を文字列に変換し、## は2 つのトークンをつなぎます。
- マクロ定義では他のマクロ定義をネストして使用することができます。
マクロ定義は単なるテキスト置換なので、マクロパラメータが複数回評価される、マクロパラメータと他の識別子が重複するなどの予期しないエラーが発生しないように注意する必要があることに注意してください。