考试网 >> IT认证 >> 等级 >> 二级考试 >> C专家编程读书笔记(下)

C专家编程读书笔记(下)

发布时间:2006-07-25 12:10     点击:
1、早用lint,勤用lint,不要等到最后才用lint。lint是软件的道德标准
 
2、关于typedef。
先看一个声明:void (*signal(int sig, void (*func)(int))) (int);
对于它,可以简化为:
typedef void (*ptr_to_func) (int)
ptr_to_func signal(int, ptr_to_func)
对于像以上那个复杂的typedef声明,你大可不必深入的去记忆、研究,只需要把它替代,化简为一个声明,那意义就豁然开朗了。
注意:
①不要在一个typedef中放入几个声明器;
②千万不要把typedef嵌到声明中间部分。
typedef与define的区别:
①可以用其他类型说明符对宏类型名进行扩展,但对typedef所定义的类型名却不能这样做。
②在连续声明中,用typedef定义的类型能够保证声明中所有的变量均为同一种类型,而用#define定义的类型则无法保证。
 
3、数组与指针并不相同,某些情况下,他俩是一样的,不过也存在情况,他俩不一样例如:
文件1: int mango[100];
文件2: extern int * mango;
这是不同的,相当于把整数和浮点数混为一谈。
 
4、Turning实验,人工智能,人机对话,都是十分有意思的东西。
 
5、堆区域用于动态分配的存储,也就是通过malloc(内存分配)函数获得的内存,并通过指针访问。堆中所有东西都是匿名的————不能按名字直接访问,只能通过指针间接访问。
被分配的内存总是经过对齐,以适合及其最大尺寸的原子访问。
堆的末端由一个称为break的指针来标识。当堆管理器需要更多内存时,它可以通过系统调用brk和sbrk来移动指针。一般情况下,不必自己显示调用brk,如果分配的内存容量很大,brk最终会被自动调用。
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有