随笔分类 -  Programming Language

All articles are discussing languages(C/C++/FORTRAN/MATLAB)
【转】C语言中数据类型和结构体大小问题
摘要:在c语言中,如果运行平台是32位的,则int所占字节数为4字节,而short为两个字节,无符号数值类型和对应数值类型大小一致.struct s1{ char *ptr,ch; union A{ short a,b; unsigned int c:2,d:1; }; struct s1 *next;};//这样是12个字节 1 struct s1{ 2 char *ptr,ch; 3 union { 4 short a,b; 5 unsigned int c:2,d:1; 6 }; 7 struct s1 *next; 8 }; 9 10 //这样是16个字节上述两个的主要区别在联合的处理上,联 阅读全文
posted @ 2011-05-27 09:02 cylee025 阅读(2319) 评论(0) 推荐(0)
C++语言的设计和演化
摘要:读这本书的时候,作者很多的话都让人眼前一亮,我想把它们都记录下来,以便以后再慢慢品味。一个系统的结构反映了创建它的那个组织的结构。随之而来的是,当一个系统基本上是一个人的工作时,它就应该反映这个人的个人观点。学生欧几里德因为提问:“那么数学又是干什么用的呢?”而被驱逐,我非常同情他。尊重人群而不尊重人群中的个体,实际上就是什么也不尊重。不同的人们确实会按不同的方式思考,喜欢按不同的方式做事情,对于这些情况的高度容忍和接受是我最愿意的事情。如果一个人可以很容易地转变到信仰X,那么进一步转变到信仰Y也是很可能的。我喜欢怀疑论者而不是真诚的信徒。一个人如果不打破几个鸡蛋是做不出鸡蛋饼的。在世界上,事 阅读全文
posted @ 2011-05-26 22:56 cylee025 阅读(364) 评论(0) 推荐(0)
【转】关于new操作符
摘要:我们都知道,使用 malloc/calloc 等分配内存的函数时,一定要检查其返回值是否为“空指针”(亦即检查分配内存的操作是否成功),这是良好的编程习惯,也是编写可靠程序所必需的。但是,如果你简单地把这一招应用到 new 上,那可就不一定正确了。我经常看到类似这样的代码: int* p = new int[SIZE]; if ( p == 0 ) // 检查 p 是否空指针 return -1; // 其它代码 其实,这里的 if ( p == 0 ) 完全是没啥意义的。C++ 里,如果 new 分配内存失败,默认是抛出异常的。所以,如果分配成功,p == 0 就绝对不会成立;而如果分配失败 阅读全文
posted @ 2011-05-25 22:13 cylee025 阅读(166) 评论(0) 推荐(0)
复制构造函数
摘要:也许很多C++的初学者都知道什么是构造函数,但是对复制构造函数(copy constructor)却还很陌生。对于我来说,在写代码的时候能用得上复制构造函数的机会并不多,不过这并不说明复制构造函数没什么用,其实复制构造函数能解决一些我们常常会忽略的问题。 为了说明复制构造函数作用,我先说说我们在编程时会遇到的一些问题。对于C++中的函数,我们应该很熟悉了,因为平常经常使用;对于类的对象,我们也很熟悉,因为我们也经常写各种各样的类,使用各种各样的对象;对于指针的操作,我们也不陌生吧?嗯,如果你还不了解上面三个概念的话,我想这篇文章不太适合你,不过看看也无碍^_^。我们经常使用函数,传递过各种各样 阅读全文
posted @ 2011-05-24 19:47 cylee025 阅读(386) 评论(0) 推荐(0)
看看CFile的使用
摘要:1 /*该函数用来将文件中所有的大写字母转化为小写字母,但是不支持UNICODE*/ 2 #include <afx.h> 3 //#include <iostream> 4 //using namespace::std; 5 6 int main() 7 { 8 BYTE buffer[0x100]; 9 try10 {11 CFile file(L"File2.txt", CFile::modeReadWrite);12 ULONGLONG dwBytesRemaining = file.GetLength();13 while(dwBytesR 阅读全文
posted @ 2011-04-27 16:12 cylee025 阅读(2976) 评论(1) 推荐(0)
Visual C++中C/C++格式化输出
摘要:在本文中将讲述printf/wprintf/CString.Format等相关函数所使用的格式化输出的语法。函数中格式化声明的一般格式为:%[flags] [width] [.precision] [{h | l | ll | I | I32 | I64}]type其中的每一个蓝色项都代表了格式化输出格式中的一个选项。这些输出格式选项一般使用一个字母或者一个数字来表示特定的格式;该格式说明语句最简单的形式就是百分号%加上一个类型说明符type,例如%s。如果%后跟的字符并非type类型的选项之一,那么这个字符将以文本的形式输出。例如在输出百分号时所采用的语句%%。出现在type之前的其他选项都 阅读全文
posted @ 2011-04-03 11:45 cylee025 阅读(7962) 评论(2) 推荐(0)
typedef的用法与define的区别总结(转)
摘要:一、typedef的用法在C/C++语言中,typedef是用来定义某种数据类型的别名它。是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedefintINT;typedefintARRAY[10];typedef(int*) pINT;typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。typedef 还可以掩饰符合类型,如指针和数组。例如,你不用象下面这样重复定义有 81 个字符元素的数组:char line[81];char text[81];定义一个 typedef,每当要用到相同类型和大小的数组时,可以这样:typedef char L 阅读全文
posted @ 2011-03-16 09:40 cylee025 阅读(348) 评论(4) 推荐(1)