3
我定義的常數:轉換一個#define的常數爲字符串
#define MAX_STR_LEN 100
我試圖做到這一點:
scanf("%" MAX_STR_LEN "s", p_buf);
但是,當然,這是行不通的。
什麼預處理技巧可用於將MAX_STR_LEN數字轉換爲字符串,以便我可以在上面的scanf調用中使用它?基本上:
scanf("%" XYZ(MAX_STR_LEN) "s", p_buf);
XYZ()應該是什麼?
注意:我當然可以直接做「%100s」,但是這樣做會失敗。我也可以做#定義MAX_STR_LEN_STR「100」,但我希望有一個更優雅的解決方案。
'的#define F(X)#x'將預處理'F(富)''到 「富」' –
你可能想看看我在http回答:// stackoverflow.com/questions/5256313/cc-macro-string-concatenation/5256500 –