2014年3月12日
摘要: 一般来说,一个字符(character)占用1字节或是2字节,我们说1字节的字符是ANSI,他可以用来表示英语字母,而2字节的我们称之为Unicode,可以表示世界上所有的语言。。VC++使用char和wchar_t的内置数据类型来分别作为表示ANSI和Unicode字符。如果你想让你的C/C++程序是字符集无关的,该怎么做呢?如果你用通常的字符集来写,你可能会写成这样的。char cResponse; // 'Y' or 'N'char sUsername[64];// str* functions和这样的wchar_t cResponse; // ' 阅读全文
posted @ 2014-03-12 10:44 psychol 阅读(1769) 评论(0) 推荐(0) 编辑
  2014年3月6日
摘要: 在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset)。在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。之后,又进行扩展,使用8bits表示一个字符,可以表示256个字符,主要在原来的7bits字符集的基础上加入了一些特殊符号例如制表符。后来,由于各国语言的加入,ASCII已经不能满足信息交流的需要,因此,为了能够表示其它国家的文字,各国在ASCII的基础上制定了自己的字符集,这 阅读全文
posted @ 2014-03-06 12:00 psychol 阅读(231) 评论(0) 推荐(0) 编辑
  2014年3月5日
摘要: 【转载】一、Debug和Release编译方式的本质区别Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。Debug和Release的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd/Fo,但区别并不重要,通常他们也不会引起Release版错误,在此不讨论)Debug版本:/MDd/MLd或/MTd使用Debugruntimelibrary(调试版本的运行时刻函数库)/Od关闭优化开关/D"_DE 阅读全文
posted @ 2014-03-05 12:50 psychol 阅读(461) 评论(0) 推荐(0) 编辑
  2014年3月4日
摘要: 当调用delete的时候,系统会自动调用已分配的对象的析构函数。当我们用new [] 分配的对象是基本数据类型时,用delete和delete [] 没有区别。但是,当分配的对象是自定义对象时,二者不能通用。一般来说使用new分配的对象,用delete来释放。用new[] 分配的内存用delete [] 来逐个释放。delete与delete[]需要注意的地方 1:首先来说一个大家容易忽略的问题:定义:int*p=newint;这个大家一看就知道,在内存中分配了一个int类型的空间,没错。但是我想说的是,操作系统在堆在分配了一个int类型空间给p指向的空间,但是p本身的值是在栈上,我觉的明白这 阅读全文
posted @ 2014-03-04 18:42 psychol 阅读(6172) 评论(3) 推荐(0) 编辑