博文

VS2005使用图解(2007-03-25 08:53:00)

摘要:
VS2005使用图解 使用过VC++6.0的都知道,VC6.0对标准C++的支持不够,VS2005改变了这个尴尬局面,
看到一些朋友问过怎么使用VS于是我就发了个把小时把使用过程的图片考了下来
只是抛砖引玉……(文件--》新建-》新建项目) 还有张图传不上了

















......

阅读全文(5456) | 评论:4

有关宽字符(2007-03-23 13:32:00)

摘要:宽字符           //出自摆渡

Unicode或者宽字符都没有改变char数据型态在C中的含义。char继续表示1个字节的储存空间,sizeof (char)继续返回1。理论上,C中1个字节可比8位长,但对我们大多数人来说,1个字节(也就是1个char)是8位宽。

C中的宽字符基于wchar_t数据型态,它在几个表头文件包括WCHAR.H中都有定义,像这样:

typedef unsigned short wchar_t ;
因此,wchar_t数据型态与无符号短整数型态相同,都是16位宽。

要定义包含一个宽字符的变量,可使用下面的语句:

wchar_t c = ’A’ ;
变量c是一个双字节值0x0041,是Unicode表示的字母A。(然而,因为Intel微处理器从最小的字节开始储存多字节数值,该字节实际上是以0x41、0x00的顺序保存在内存中。如果检查Unicode文字的计算机储存应注意这一点。)

您还可定义指向宽字符串的指针:

wchar_t * p = L"Hello!" ;
注意紧接在第一个引号前面的大写字母L(代表「long」)。这将告诉编译器该字符串按宽字符保存-即每个字符占用2个字节。通常,指针变量p要占用4个字节,而字符串变量需要14个字节-每个字符需要2个字节,末尾的0还需要2个字节。

同样,您还可以用下面的语句定义宽字符数组:

static wchar_t a[] = L"Hello!" ;
该字符串也需要14个字节的储存空间,sizeof (a) 将返回14。索引数组a可得到单独的字符。a[1] 的值是宽字符「e」,或者0x0065。

虽然看上去更像一个印刷符号,但第一个引号前面的L非常重要,并且在两个符号之间必须没有空格。只有带有L,编译器才知道您需要将字符串存为每个字符2字节。稍后,当我们看到使用宽字符串而不是变量定义时,您还会遇到第一个引号前面的L。幸运的是,如果忘记了包含L,C编译器通常会给提出警告或错误信息。

您还可在单个字符文字前面使用L前缀,来......

阅读全文(3069) | 评论:0

ANSI C 阅读笔记(2007-03-20 11:19:00)

摘要: ######################################################
 以下是个人的阅读笔记,记录了一些容易被大家忽略的地方 ######################################################   1 ** 非常好的程序:(考虑程序的可移植性) #include <stdio.h>
#include <limits.h>
#include <stdlib.h> void PRINTBIT(int); /* 打印 n 的每个比特位 */ void PRINTBIT(int n){ /* 这里开始我定义为 int 型,结果如下:
    2 : 0000 0000 0000 0000 0000 0000 0000 0011
    4 : 0000 0000 0000 0000 0000 0000 0000 0111
2 ^ 4 : 0000 0000 0000 0000 0000 0000 0000 0111
2 & 4 : 0000 0000 0000 0000 0000 0000 0000 0000
2 | 4 : 0000 0000 0000 0000 0000 0000 0000 0111
   最后改为unsigned int 则正确,仔细想了一下
   原因:
   check = 1;
   check <<= (i - 1);
   这样如果 check 为 int 则最高为永远为 1,且会
   向右移动,移完后
   check=bit(1111 1111 1111 1111 1111 1111 1111 1111);
 */
 unsigned int j;
 unsigned int i = sizeof(int) * CHAR......

阅读全文(2589) | 评论:0

编程高手是怎样炼成的(2007-03-20 10:42:00)

摘要:首先声明,偶不是高手,以免引起不必要的冷嘲热讽,呵呵。

估计很多的朋友在很小的时候就看过奥斯特洛夫斯基同学的《钢铁是怎样炼成的》,偶小时候在农村混,看的最多是各式各样的牛屎以及长得极象牛屎的山头,这些所谓的名著偶直到大学才有机会拜读,但说实话,偶是个俗人,还是更喜欢看一些痞子写的文字或带COLOR的BOOKS。偶之所以写这么个主题,主要是太多的朋友给偶发EMAIL或在VCHOME.NET提问,偶其实也与大家一样为生活而奔波,因此没有时间一一作答,在这作一次回答,还望海涵。

高手是一个哗众取宠的词汇,世上本来并没有高手,说的人多了也就有了高手,我看程序员只有老少之分,并无高低之分,比如偶就是一个老程序员,因此作为程序员,我们追求的应该是写出有用有价值的软件产品,呵呵,废话少说,切入正题吧!

1. 迷恋 + 热情;
爱因斯坦同学说:兴趣是最好的老师,这就是说一个人一旦对某事物有了浓厚的兴趣,就会主动去求知、去探索、去实践,并在求知、探索、实践中产生愉快的情绪和体验,并不断地激发学习的动力,这种说法很美妙,众所周知,程序员是一种有点乏味有点枯燥有点辛苦的技术工作,要能坚持下去,并能做得很好,没有迷恋没有热情是很难很难的,偶就很迷恋,迷恋C++,迷恋computer,迷恋network,偶迷恋for、if、while、case等等就如同歌手迷恋五线谱的小蝌蚪一样,我觉得程序代码真是无所不能,简简单单的几行代码就能实现丰富多彩的功能,你难道不觉得很NB吗?呵呵,因此,作为一名老程序员,我建议年轻的程序员们一定要对coding保持迷恋保持热情,那样我们才有可能做得更好。

2. 在项目中磨练与成长;
很多朋友经常问:他看了很多书,也做了较多的练习,但感觉水平并没有得到提高,这是为什么?呵呵,我觉得每个人不同,有些程序员通过看书,也能学到很多东东,但我个人觉得最好的提高方法,还是要参与到某一项目中去锻炼,从设计到开发到测试到维护一整套的磨练流程,项目是有周期的,有周期就有压力,有压力才能不分昼夜地去学习与实现,学习的效果也会很显著与深刻。

3. 数不胜数的加班;
偶这里所讲的加班并不单指工作上的OT(即overtime),而更多的是学习上的OT,偶认为程序员学习的黄金时间在毕业后的前三年,这三年......

阅读全文(2532) | 评论:3