3
在C在現有的代碼庫,我有以下幾點:字串括號消除
#define MYVAR (1)
正如你可以看到,這是通過與周圍括號(#定義符合用C的良好做法,儘管我知道在這個情況它沒有區別,因爲值不是 表達式)。無論我想在串列化中使用它。當我這樣做:
#define STRINGIFY(x) #x
#define TO_STRING(x) STRINGIFY(x)
const char* mystring = TO_STRING(MYVAR) ;
結果字符串是「(1)」。我想,以消除括號不做簡單:
#define MYVAR 1
反正在C字串中消除括號?
由於這是在預處理階段,你已經顯式*定義*'MYVAR'被替換爲'(1)'我不相信你在找什麼是可行的。如果是這樣,我無法想象它是如此沒有非常特別的後端。 – WhozCraig
我很害怕這個。謝謝 –
我不認爲用括號括住文字是一定好的做法,它甚至可能讓人相信它是宏語法的一部分。 – Veltas