当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机二级辅导:C专家编程读书笔记(下)
发布时间:2009/11/22 9:55:23 来源:城市学习网 编辑:admin
  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最终会被自动调用。
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved