Introduction/引论
C语言有关内容复习
分析变量的类型
规则:从要分析的变量所在层开始分析,逐层分析即可,主要需要熟悉各种符合C语言语法的变量定义方式
一些常见的变量定义方式
int x; //整型变量
int * px, y; //整型指针变量和整型变量
int a[10]; //整型数组
int * b[10]; //整型指针数组
int (*c)[10]; //指向整型数组的指针,区分于上一行的整型指针数组
int (*f)(int t);//函数指针,对应函数返回值是int,参数是int t,对其赋值也必须用同类型的函数名对其赋值,例如后面foo的例子
int *g(int t); //函数,该函数的返回值是int *,参数是t,区分于上一行的函数指针
int foo(int m){;}
f = foo; //合法,因为类型完全相同
例一
int* (*b[10])[10]
b的类型是:b是一个指针数组[10],其中包含的指针指向指针数组,这个指针数组为int *[10]类型,即包含10个整型指针
例二
int (*(*(*pg())(int x))[20])(int *y);
pg的类型是:pg是一个函数,其参数为空,返回值是一个指针,指向一个函数,该函数的参数为int x,返回值是一个指针,指向一个指针数组[20],指针数组的元素指向一个函数,函数的参数是int *y,返回值是int
编译器工作流程
- 词法分析
- 语法分析
- 语义分析
- 中间代码生成
- 代码优化
- 代码生成