隨着MSVC 2010我嘗試在C或C++模式(需要在兩個編譯)和 編譯它不起作用。爲什麼?我認爲並在文檔中發現'\ x'將接下來的兩個字符作爲十六進制字符,而不是更多(使用\ X時4個字符)C字符串文字「字符太大」
我還了解到,沒有可移植的方式來使用字符代碼在C源代碼之外ASCII無論如何,所以我怎樣才能指定一些德國ISO-8859-1?
int main() {
char* x = "\xBCd"; // Why is this not char(188) + 'd'
}
// returns test.c(2) : error C2022: '3021' : too big for character
// and a warning with GCC
'unsigned char' vs'char'? 'char'最有可能被簽名,在這種情況下127以上的值是「太大」。 – twalberg
謝謝,但沒有。我也試過用unsigned char。相同的錯誤消息。 – Lothar
@洛塔爾:我不是要成爲納粹分子,而是你的意思是ANSI C而不是ASCII C吧? ;)另外,你說得對,沒有真正的可移植的unicode方法。如果您使用的字符集大於8位,則需要自己指定編碼。檢查此帖:http://stackoverflow.com/questions/1421811/how-do-i-represent-a-unicode-character-in-a-literal-string-iso-ansi-c-when-the-c –