编译器错误 - 在C++中连接 #define

compiler errors - Concatenating #define in C++

本文关键字:连接 #define C++ 错误 编译器      更新时间:2023-10-16

我有这样的东西:

#define BASE_FOLDER = "Resources"
#define PREFERENCE_FILE_NAME = "AppPreferences.txt"
#define SPLASH_FILE_NAME = "Splash.png"
#define PREFERENCE_PATH = ".\" + BASE_FOLDER + "\" + PREFERENCE_FILE_NAME
#define SPLASH_PATH = ".\" + BASE_FOLDER + "\" + SPLASH_FILE_NAME

编译器在使用PREFERENCE_PATH的地方抛出错误。

expecting primary expression before = token.

这些在我做的时候都有效

#define PREFERENCE_PATH = ".\Resources\AppPreferences.txt"
#define SPLASH_PATH = ".\Resources\Splash.png"

我做错了什么?

去掉等号。预处理器定义不使用等号。

然后摆脱加分项。字符串文本在并排放置时连接起来,中间没有加号。强调文字,因为这是一个编译时功能,仅适用于双引号文字,如 "foo" "bar""foobar" .它不适用于变量。

#define BASE_FOLDER          "Resources"
#define PREFERENCE_FILE_NAME "AppPreferences.txt"
#define SPLASH_FILE_NAME     "Splash.png"
#define PREFERENCE_PATH ".\" BASE_FOLDER "\" PREFERENCE_FILE_NAME
#define SPLASH_PATH     ".\" BASE_FOLDER "\" SPLASH_FILE_NAME
你不能像

这样连接字符串(即字符*)C++...他们没有+操作员。