1. 编译的四个步骤

预处理 .c文件生成 .i文件
编译 .i文件生成.s文件
汇编 .s文件生成.o 文件
连接 *.o文件生成可执行文件

Gcc -o helloword.i helloword.c -E
-E 预处理后终止编译

预处理时进行文本替换

define M 10
#define add(a,b) (a+b)

末尾没有分号,非c语法,文件内全局作用域

  1. Typedef

Typedef块内作用域, c语法,声明别名

Typedef struct stud{} sutd_t

  1. 结构体

Struct student {
Char[20] name;
Int age;
Int Height;
}

Struct student std = {‘wc’, 12, 129}
Printf(std.name)

  1. 数组结构体

Struct student students[2] = {{‘wc’, 12, 129},{‘wc’, 12, 129}}

Students[0].name
Students[1].name

5.结构体指针变量

Struct student s;
S = &std
一下3种方式相同, ->是 指向运算符
(
S).name
S -> name
Std.nam

6.数组结构体指针变量
默认指向第一个元素的值

然后需要做指针的位移操作(指针的++操作),去取连续的值