Với MSVC 2010 tôi cố gắng biên dịch trong chế độ C hoặc C++ (cần phải được compilable trong cả hai) và nó không hoạt động. Tại sao? Tôi nghĩ và tìm thấy trong tài liệu '\ x' lấy hai ký tự tiếp theo dưới dạng ký tự hex và không nhiều hơn (4 ký tự khi sử dụng \ X ").C Chuỗi Chữ "quá lớn đối với ký tự"
Tôi cũng biết rằng không có cách nào để sử dụng mã ký tự ASCII bên ngoài trong mã nguồn C dù sao, vậy làm thế nào tôi có thể chỉ định một số ký tự ISO-8859-1 Đức?
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' có nhiều khả năng được ký, trong đó giá trị trường hợp trên 127 là" quá lớn ". – twalberg
Cảm ơn nhưng không. Tôi đã thử nó với unsigned char quá. Thông báo lỗi tương tự. – Lothar
@Lothar: Tôi không có ý là một nazi, nhưng bạn có nghĩa là ANSI C thay vì ASCII C phải không? ;) Ngoài ra, bạn nói đúng rằng không có cách di động thực sự để làm unicode. Bạn sẽ cần chỉ định mã hóa chính mình nếu bạn đang sử dụng bộ ký tự> 8 bit. Kiểm tra bài đăng này: http://stackoverflow.com/questions/1421811/how-do-i-represent-a-unicode-character-in-a-literal-string-iso-ansi-c-when-the-c –