0
我不明白爲什麼這個宏在函數調用中不起作用。如何在函數調用中使用宏?
#define MAX 255;
printf("max value %d", MAX);
但這
#define MAX 255;
int m = MAX;
printf("max value %d", m);
是不是預處理之前 編譯替換值。他爲什麼在抱怨?
我不明白爲什麼這個宏在函數調用中不起作用。如何在函數調用中使用宏?
#define MAX 255;
printf("max value %d", MAX);
但這
#define MAX 255;
int m = MAX;
printf("max value %d", m);
是不是預處理之前 編譯替換值。他爲什麼在抱怨?
問題是分號;
。刪除:
#define MAX 255
否則兩個代碼示例擴大如下:
printf("max value %d", 255;);
和
int m = 255;;
printf("max value %d", m);
在它導致無害空語句的第二種情況。在第一個方案是不健全的。
請記住,宏定義是而不是語句。它們是預處理程序的指示,指示如何執行令牌替換。
printf("max value %d", 255;);
是無效的語法。
int m = 255;;
printf("max value %d", m);
是合法的。