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;

 --- 「マクロ定義内での文字の使い方が違う」そうで、エラー






 詰まる所、

・名前と「(」の間に空白を入れてはいけない。

・定義の「()」は一重。

・「()」の直後で必ず切れる。

ということかな。