【问题标题】:Remark: unrecognized token warning for the macro concatenation备注:宏连接的无法识别令牌警告
【发布时间】:2014-04-04 06:33:41
【问题描述】:
#define DATA_VAR_FILENAME(PROJECT_ID)  QUOTES(..\ ## PROJECT_ID ## _data_var.h)

#define DATA_VAR_FILENAME(PROJECT_ID)  QUOTES(..\##PROJECT_ID##_data_var.h)

对于上述行,我得到以下警告

备注:无法识别的令牌

如何消除警告?

【问题讨论】:

    标签: c macros concatenation c-preprocessor compiler-warnings


    【解决方案1】:

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

    通常不需要这样的操作。字符串文字只是在稍后的编译阶段连接了太大的字符串文字。类似的东西

    "../" "my_file.h"
    

    应该可以解决问题。

    您似乎也有困难,在您的平台上\ 是路径分隔符。所以你必须小心在字符串文字中转义它,比如"..\\"

    【讨论】:

    • 是的,我在这里尝试包含始终变化的文件名。我已经用文件名派生了包含路径,编译工作正常,但是“remark: unrecognized token”警告是问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多