我需要一個字符串,它使用一個整數的宏值。但它不在任何函數中,所以我不想創建一個變量。我在#pragma評論中使用它。有沒有辦法在不分配變量的情況下將字符串連接到數字?
所以是這樣的:
#define num 7
#pragma comment(lib, "string" + num)
這將結合字符串和num使得它(的#pragma評論(LIB, 「string7」)
我需要一個字符串,它使用一個整數的宏值。但它不在任何函數中,所以我不想創建一個變量。我在#pragma評論中使用它。有沒有辦法在不分配變量的情況下將字符串連接到數字?
所以是這樣的:
#define num 7
#pragma comment(lib, "string" + num)
這將結合字符串和num使得它(的#pragma評論(LIB, 「string7」)
你想要做什麼叫做字串 :
#define stringify_1(x...) #x
#define stringify(x...) stringify_1(x)
#define NUM 7
char *p = stringify(NUM);
這是通過在Linux內核中的幫手include/linux/stringify.h
__stringify
宏啓發
我不是意圖完全清楚,這聽起來像一些預處理能力: http://gcc.gnu.org/onlinedocs/cpp/Stringification.html#Stringification
從這個例子中,你會發現好像是你想要的這個簡短解釋。
#define xstr(s) str(s)
#define str(s) #s
#define foo 4
str (foo)
==> "foo"
xstr (foo)
==> xstr (4)
==> str (4)
==> "4"
所以,你將能夠做這樣的事情:
#define xstr(s) str(s)
#define str(s) #s
#define num 7
#pragma comment(lib, "string" xstr(num))
普通字符串合併規則應該讓所有的罰款,如果它是在實際的代碼,但我不知道,如果字符串自動合併在編譯指示中。這可能與實施有關。
這是之前回答的。 [1]:http://stackoverflow.com/questions/5256313/cc-macro-string-concatenation – Ram
這沒有奏效,並且解決方案也沒有工作 – Bullsfan127