请考虑以下代码
#define FIRSTNAME ""
#define SECONDNAME "JOHN"
# define PATHSAVE(a) func(strcat(strcpy(tmpFileName, appDir), a))
int main() {
PATHSAVE(FIRSTNAME SECONDNAME);
}
通过分析,我发现值“John”被传递给了函数 PATHSAVE。 我无法理解为什么在此函数中使用了两个参数 PATHSAVE(FIRSTNAME SECONDNAME)
最佳答案
你写的会展开如下
func(strcat(strcpy(tmpFileName, appDir), "" "JOHN"));
^^ ^^^^^^
|| ||||||
|| SECONDNAME
||
FIRSTNAME
将两个参数传递给宏需要它们用 ,
分隔,而不是用空格分隔
关于android - #define 预处理器如何在 C 中真正工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40677456/