我尝试使用MSVC 2010在C或C++模式下编译此代码,但它无法工作。为什么?我查阅了文档后发现 '\x' 只取后面的两个字符作为十六进制字符(当使用 \X" 时需要取4个字符)。
我还学到,在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
和char
有什么区别?char
很可能是带符号的,因此大于127的值会被视为“太大”。 - twalberg