假設wc
是wchar_t
和c
是char
。
1)這兩項任務有什麼不同?賦值和等號運算符中的寬字符和字符
c = 'a';
wc = L'a';
2)是否有強制的ASCII值的c
和wc
平等的任何規則?編譯器究竟意味着什麼wc == c
?
假設wc
是wchar_t
和c
是char
。
1)這兩項任務有什麼不同?賦值和等號運算符中的寬字符和字符
c = 'a';
wc = L'a';
2)是否有強制的ASCII值的c
和wc
平等的任何規則?編譯器究竟意味着什麼wc == c
?
否 - 標準保證基本執行字符集和基本寬執行字符集都包含'a',但不能保證它們在兩者中都具有相同的值。
§2.3/ 3給出了一些限制(例如,數字應該是連續的),其中沒有一個適用於此,還有一個最終:「執行字符集的成員值和其他成員集的值是locale -具體。」
因此,它不僅不能保證,但至少在理論上它甚至可以在/更改語言環境時更改。
Kerrek的評論怎麼樣?所以他們都是不可或缺的,這不會導致對這個問題的回答嗎? – JalalJaberi
@JalalJaberi:隻影響類型,而不影響數值。你可以比較它們,但不能保證結果。 –
並比較它們的比較它們的整數值,然後,沒有任何保證!謝謝。 'char'和'wchar_t'沒有那麼友好的關係! :) – JalalJaberi
'char'和'wchar_t'都是整型。通常的積分促銷規則適用。 –
@KerrekSB謝謝。那'L'呢?如果它們是兩個不可分割的部分,那麼''a'與'L'a''沒有什麼區別。這是否也是真的? – JalalJaberi
@KerrekSB在這裏推廣或轉換嗎? (我會說這是轉換。) – dyp