为什么阅读《C Primer Plus》第六版
准备好好研究下redis源码,但是很久没用c语言写代码了,平时工作主要用java和js。
所以准备重新阅读学习下c语言经典书籍:C Primer Plus。
更好的阅读redis源码。
读书笔记
C语言1972年由贝尔实验室的Dennis Ritch和 Ken Thomepson(我的偶像)在开发unix操作系统时候设计的。
C的优点:
1. 强大的控制结构
2. 快速
3. 代码紧凑-程序更小
4. 可移植到其他计算机
C语言的缺点:
1. c语言的指针使用,带来的一些编程错误难以觉察。
2. 容易编写出让人极其费解的代码。
C语言的应用范围:
1. pc应用
2. 计算机游戏
3. 嵌入式系统
4. 操作系统
5. 电影特效
6. 计算机语言
yups: C语言不适合做web应用开发,也不太适合用来写脚本。不适合只是因为开发效率不够高效,但不代表做不了。
//文件名 demo.c
#include
int main(void)
{
int num;
num = 1;
printf("I am a simple ");
printf("computer.\n");
printf("My favorite number is %d because it is first.\n",num);
return 0;
}
mac下输入gcc demo.c,会最终编译生成a.out文件,运行./a.out,输出
I am a simple computer.
My favorite number is 1 because it is first.
以上是一个比较典型的C程序了。
#include
stdio.h是C编译器软件包的标准部分,提供键盘输入和屏幕输出的支持。
int main(void) 是C程序的执行入口(int和void是ANSI C的规范)
{}是main函数内部的开始和结束。
int num 声明使用一个名字为num的变量,而且num是整数int类型。
num = 1 赋值表达式语句
printf("I am a simple ") 调用printf函数,效果是会在屏幕中显示I am a simple
printf(“computer.\n”); \n表示换行,光标移至下一行。
printf(“My favorite number is %d because it is first.\n”,num); num值代替%d, %d表示是整数类型。
return 0; return语句
和java类似,可以用小写字母、大写字母、数字和下划线来命名,但是第一个字符必须是字母或下划线,不能是数字
1. 有意义的函数名和变量名。
2. 写注释,但是定义好的变量名,可以减少一部分注释,防止啰嗦。
3. 空行分隔概念上的多个部分。
int feet, fathoms;
等价于
int feet;
int fathoms;
关键字 | 说明 |
---|---|
auto | 声明自动变量 |
short | 声明短整型 |
int | 声明整型 |
long | 声明长整型 |
float | 声明单精度浮点型 |
double | 声明双精度浮点型 |
char | 声明字符型 |
struct | 声明结构体类型 |
union | 声明联合(共用)类型 |
enum | 声明枚举类型 |
typedef | 重命名数据类型 |
const | 声明只读变量 |
unsigned | 声明无符号类型 |
signed | 声明有符号类型 |
extern | 声明外部变量 |
register | 声明寄存器变量 |
static | 声明静态变量 |
volatile | 说明变量在程序执行中可隐含的被改变 |
void | 声明函数无返回值或者无参数,声明无类型指针 |
if | 条件语句 |
else | 条件语句否定分支(与if连用) |
switch | 用于开关语句 |
case | 开关语句分支 |
default | 开关语句中默认分支 |
for | 循环语句 |
do | 循环语句循环体 |
while | 循环语句的循环条件 |
continue | 结束当前循环,开启下一轮循环 |
break | 跳出当前循环 |
goto | 无条件跳转语句 |
sizeof | 计算数据类型长度 |
return | 子程序返回语句(可以带参数,也可以不带参数)循环条件 |