分类 编程语言 下的文章
【TLPI读书笔记】 一、历史和标准
UNIX和C语言简史
- 1969年,在AT&T电话公司下辖的bell实验室中,Ken Thompson 开发出了首个UNIX实现。
- 1970年,AT&T的工程师们又在刚购进的Digital PDP-11 小型机上,以汇编语言重写了UNIX;未过多久,Dennis Ritchie设计并实现出了C编程语言。
- 到1973年,C语言步入了成熟期,人们使用这一新语言重写了UNIX内核。
【C-Primer-Plus读书笔记】第16章:C预处理器和C库
翻译程序的第一步
在预处理之前,编译器必须对该程序进行一些翻译处理:
- 编译器把源代码中出现的字符映射到源字符集;
- 编译器定位每个反斜杠后面跟着换行符到实例,并删除它们(即把代码中本是一行但写了两行的语句转换成一行,常见于在一行字符串中插入反斜杠后跟着按下回车键形成的两行代码。即两个物理行转换成一个逻辑行,预处理表达式的长度必须是一个逻辑行);
- 编译器把文本划分成预处理记号序列、空白序列和注释序列(记号是由空格、制表符或换行符分割的项),这里需要注意的是,编译器将用一个空格字符替代每一条注释;
- 程序已经准备好进入预处理阶段,预处理器查找一行中以
#
号开始的预处理指令。
明示常量:#define
- 预处理器指令从
#
开始运行,到后面的第一个换行符为止。也就是说,指令的长度仅限于一行。 每行
#define
(逻辑行)都由3部分组成:- 第1部分是
#define
指令本身; - 第2部分是选定的缩写,也称为宏。有些宏代表值,这些宏被称为类对象宏;
- 第3部分(指令行的其余部分)称为替换列表或替换体。
- 第1部分是
【C-Primer-Plus读书笔记】第15章:位操作
二进制数、位和字节
- 我们人类常用的十进制数是基于10的幂,计算机适用基底为2的数制系统。
- 以2为基底表示的数字被称为二进制数。二进制中的2和十进制中的10作用相同。
- 用二进制系统可以把任意整数(如果有足够的位)表示为0和1的组合。
- 由于数字计算机通过关闭和打开状态的组合来表示信息,这两种状态分别用0和1来表示,所以使用这套数制系统非常方便。
二进制整数
- 通常,1字节包含8位。C语言用字节表示存储系统字符集所需的大小。
- 可以从左往右给这8位分别编号7~0。在1字节中,编号是7的位被称为高阶位,编号是0的位被称为低阶位。每一位的编号对应2的相应指数。
- 1字节可存储0~255范围内的数字,总共256个值。或者,通过不同方式的位组合,程序可以用1字节存储-128~+127范围内的整数,总共还是256个值。
【C-Primer-Plus读书笔记】第14章:结构和其他数据形式
示例程序
- C提供了结构变量提高你表示数据的能力,它能让你创造新的形式。
- 结构的每个部分都称为成员或字段。
使用结构的3个技巧:
- 为结构建立一个格式或样式;
- 声明一个适合该样式的变量;
- 访问结构变量的各个部分。
建立结构声明
struct book
{
char title[MAXTITL];
char author[MAXAUTL];
float value;
};