請考慮下面的代碼如何#define預處理真正起作用用C
#define FIRSTNAME ""
#define SECONDNAME "JOHN"
# define PATHSAVE(a) func(strcat(strcpy(tmpFileName, appDir), a))
int main() {
PATHSAVE(FIRSTNAME SECONDNAME);
}
通過分析我發現價值「約翰」傳遞給函數PATHSAVE。 通過我不能明白爲什麼兩個參數在此功能PATHSAVE(名字SECONDNAME)
你是不是傳遞2個參數。你傳遞了一個參數,它是'FIRSTNAME'和'SECONDNAME'連接的結果。不同的參數用逗號(',')分隔。 –
發送這個[只通過預處理器*](http://stackoverflow.com/questions/4900870/can-gcc-output-c-code-after-preprocessing),並檢查輸出可能會回答你的問題。 – WhozCraig
看起來這是一個字符串連接的例子。 – NathanOliver