C 备注:宏连接出现无法识别的标记警告

C 备注:宏连接出现无法识别的标记警告,c,macros,concatenation,c-preprocessor,compiler-warnings,C,Macros,Concatenation,C Preprocessor,Compiler Warnings,或 对于上面这一行,我得到了以下警告 备注:未识别的令牌 如何消除警告?从外观上看,您似乎正在尝试在预处理器中编写文件名。这是不可能的,因为形成路径名的字符串不是预处理器的标记 通常不需要这样的操作。在以后的编译阶段,字符串文字只是连接太大的字符串文字。差不多 #define DATA_VAR_FILENAME(PROJECT_ID) QUOTES(..\##PROJECT_ID##_data_var.h) 我们应该做到这一点 在您的平台上,\是路径分隔符,这似乎也很困难。因此,您必须小心地

对于上面这一行,我得到了以下警告

备注:未识别的令牌


如何消除警告?

从外观上看,您似乎正在尝试在预处理器中编写文件名。这是不可能的,因为形成路径名的字符串不是预处理器的标记

通常不需要这样的操作。在以后的编译阶段,字符串文字只是连接太大的字符串文字。差不多

#define DATA_VAR_FILENAME(PROJECT_ID)  QUOTES(..\##PROJECT_ID##_data_var.h)
我们应该做到这一点


在您的平台上,
\
是路径分隔符,这似乎也很困难。因此,您必须小心地以字符串文本形式转义它,类似于“
”。\\“

是的,这里我试图包括文件名,它总是不同的。我已经用文件名导出了包含路径,编译工作正常,但“备注:无法识别的令牌”警告是问题所在
#define DATA_VAR_FILENAME(PROJECT_ID)  QUOTES(..\##PROJECT_ID##_data_var.h)
"../" "my_file.h"