我有类似的东西:
#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++ - 在C++中串联#define,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14612720/