0
使用龍捲風2.2.1 GNU在編譯器選項
在C/C++編譯器選項,我試圖定義字符串如下定義字符串: -DHELLO =「你好」,它不工作(這也對於-DHELLO = \「Hello \」和-DHELLO = \\「Hello \\」在其他平臺中失敗) 定義值-DVALUE = 12工作沒有問題。
有沒有人知道正確的方式來定義Tornado中的字符串?
使用龍捲風2.2.1 GNU在編譯器選項
在C/C++編譯器選項,我試圖定義字符串如下定義字符串: -DHELLO =「你好」,它不工作(這也對於-DHELLO = \「Hello \」和-DHELLO = \\「Hello \\」在其他平臺中失敗) 定義值-DVALUE = 12工作沒有問題。
有沒有人知道正確的方式來定義Tornado中的字符串?
這樣一個宏的問題是,它通常不是一個字符串(在C/C++的意義上),只是一個預處理符號。由於預處理器編號可以在C/C++中原樣使用,但是對於字符串符號,如果要將它們轉換爲C/C++字符串(除了添加轉義引號外),您需要「串化」它們。
所以,這應該工作(無需額外的轉義引號):
#define _STRINGIZE(x) #x
#define STRINGIZE(x) _STRINGIZE(x)
string s = STRINGIZE(HELLO)
(注意雙擴張獲得的,而不是宏觀stringized,即「你好」的宏值,名字本身,即「你好」)
你試過了嗎?-DHELLO =「\」你好\「」' – Amadeus
@Amadeus:你是不是指'-DHELLO =「\」hello \「」'? (換句話說,逃避內部引號) –
它..「不起作用」?那是什麼意思? –