2025-11-20 06:50:46
char是8位,WCHAR在不同系统里位数不一样。比如Windows系统里WCHAR是16位,Linux系统里是8位。char就是普通字符类型,存一个字母或数字占8位。WCHAR是宽字符类型,存一个汉字或特殊符号占16位。这两个类型就像小碗和大碗,存不同东西需要不同容量。
为什么这样呢?因为编码标准不同。Unicode规定汉字用两个字节表示,Windows选了UTF-16编码,所以WCHAR用16位。而Linux和macOS用UTF-8编码,一个汉字占3字节,但char类型还是8位,存不够汉字就用多个char拼成字符串。就像汉字要坐两个小椅子,英文字母坐一个椅子。C++标准库里char默认8位,WCHAR根据系统环境自动切换16位或8位。比如在Windows写程序,WCHAR能直接存汉字,char存字母;如果在Linux写,WCHAR和char都只能存字母,存汉字得用string类型。这就像不同餐厅的餐具,筷子(WCHAR)和勺子(char)搭配使用才方便。
本题链接: