Cのマクロ定義
・#define TEST i=0;
--- 「TEST」→「i=0;」
・#define TEST() i=0;
--- 「TEST()」→「i=0;」
・#define TEST( ) i=0;
--- 「TEST()」→「i=0;」
・#define TEST () i=0;
--- 「TEST」→「() i=0;」
・#define TEST( i ) i=0;
--- 「TEST(i)」→「i=0;」
・#define TEST ( i ) i=0;
--- 「TEST」→「( i ) i=0;」
・#define TEST( (i) ) i=0;
--- 「予期しない文字 '('」でエラー
・#define TEST(i)() i=0;
--- 「TEST(i)」→「() i=0;」
(但し、「()」を数式に含めるとエラーになるので使えない。)
・#define TEST(i)i i=0;
--- 「TEST(i)」→「i i=0;」
(但し、「i」の後に「i=0;」が来るとエラーになるので使えない。)
・#define TEST(i)i=0;
--- 「TEST(i)」→「i=0;」
・#define TESTi=0;
--- 「マクロ定義内での文字の使い方が違う」そうで、エラー
詰まる所、
・名前と「(」の間に空白を入れてはいけない。
・定義の「()」は一重。
・「()」の直後で必ず切れる。
ということかな。