初学C++,近日在看C++ primer 3ed,对3.1节的wchar_t的介绍有疑惑。书中说wchar_t是用于特殊语言集的,如汉字等。我觉得可能是对unicode的支持。遍了一个小程序测试一下,产生了问题。
书中介绍用引用wchar_t字符要在字符前加L。下面是我的2个程序,对有L和没有L出不同。
[program 1]
#include
by gbunix - C/C++ - 2004-03-09 16:25:08 阅读(1230) 回复(0)
GDB(The GNU Project Debugger)中的 print 命令不支持查看 C/C++ Unicode文本变量的内容(wchar_t*)。 假设我们要调试以下 C/C++ 代码: #include int main() { const char* szAnsi = "The EF programming language is a general-purpose, simple, easy to use, " "efficient, practical, object-oriented and cross-platform language. "; const wchar_t* szUnicode = L"“易语言.飞扬”是...
代码如下,字符串“一切”之前有5个全角空格。[code]#include
一个C++的程序在连接的时候报告wchar_t类型冲突, 已经突破了我的传统观念,ld看来对类型定义也是蛮关心的. 不过参考这封邮件,应该能找到解决的办法. http://sourceware.org/ml/binutils/2007-06/msg00279.html Conflicting wchar_t attributes From: Khem Raj To: Paul Brook Cc: binutils at sourceware dot orgDate: Tue, 26 Jun 2007 17:41:17 -0700Subject: Conflicting wchar_t attributes Hi Paul While trying out this pat...
wchar_t是否像其它多字节整形(如int)存在字节序(big-endian || little-endian)的问题? 如果存在此问题,当需要在不同字节序的机器上通过网络传输字符串信息时,如何处理?
[code]#include
在WIN上wchar_t是2个字节 Linux上是4个字节
gcc 有选项-fshort-wchar 把wchar_t 编译成2个字节
但用着怎么有问题呢?
test.cpp
#include
wchar_t的大小,到底是编译器决定的,还是操作系统决定的? gcc在linux下面sizeof(wchar_t)=4,在Windows下面是多少呢? 我知道vc的sizeof(wchar_t)=2