2015年9月22日

C语言缺陷与陷阱读书笔记(六)

摘要: 预处理器 6.1 不能忽视宏定义中的空格 宏提供了一种对组成C程序的字符变换的方式,而并不作用于程序中的对象。 不能忽视宏定义中的空格: define f (x) ((x) 1) 这是的结果是f(x)代表 (x)((x) 1)。 这一规则不适用于宏调用。 6.2 宏并不是函数 宏... 阅读全文

posted @ 2015-09-22 16:20 陆游君语 阅读(238) 评论(0) 推荐(0)

C语言缺陷与陷阱读书笔记(五)

摘要: 库函数 5.1 返回整数的getchar函数 include <stdio.h int main(void) { char c; while ((c= getchar())!=EOF) }字符赋值函数,由于c被定义为char类型,c不会接收到EOF这个值。因此程序会进入死循环,无法正常退出。... 阅读全文

posted @ 2015-09-22 13:12 陆游君语 阅读(266) 评论(0) 推荐(0)

C语言缺陷与陷阱读书笔记(四)

摘要: 连接 4.1 什么是连接器 连接器的输入是一组目标模块和库文件。连接器的输出是一个载入模块。连接器读入目标模块和库文件,同时生成载入模块。对每个目标模块中的每个外部对象,连接器都要检查载入模块,看是否已有同名的外部对象。如果没有,连接器将这个外部对象添加到载入模块中;如果有,连接器要处理命名冲突... 阅读全文

posted @ 2015-09-22 09:33 陆游君语 阅读(324) 评论(0) 推荐(0)

C语言缺陷与陷阱读书笔记(三)

摘要: 语义陷阱 3.1 指针和数组 任何一个数组下标运算都等同于一个对应的指针运算,因此完全可以依据指针行为定义数组下标的行为。数组名被当作该数组下标为0的元素的指针。sizeof(a)的结果是整个数组的大小,而不是指向数组a的元素的指针的大小。 a即数组a中下标为0的元素的引用,同理 (a+1)是数... 阅读全文

posted @ 2015-09-22 07:48 陆游君语 阅读(346) 评论(0) 推荐(0)

导航