在第2.10節中的C++標準14([lex.ppnumber]),預處理號碼被定義爲登錄預處理數量
pp-number
digit
. digit
pp-number digit
pp-number ' digit
pp-number ' nondigit
pp-number identifier-nondigit
pp-number e sign
pp-number E sign
pp-number .
因此,這應包括所有整數文字令牌和所有浮動字面令牌。但是如2.14.4([lex.fcon])所寫,有一個符號是可選的,即(如果有一種方法可以像在標準中那樣格式化,可以隨意改進)。
exponent-part:
e sign_opt digit-sequence
E sign_opt digit-sequence
sign: one of
+ -
爲什麼pp-number定義中的符號不是可選的?實際上,它的編寫方式是,數字1e3應該是浮動字面的,但不是pp-number,這與第2.10節給出的解釋相矛盾。
有什麼事我不明白?
'1E3'是一個有效的pp號碼。 'E'使用標識符非數字製作。 –