程序a
int x=1,y=3;
int fun(int a)
{
return 2*a;
}
int main()
{
int a=3;
printf("%d\n",fun(a));
}
程序a 就是个翻译单元
一个完整的C文件是一个翻译单元
翻译单元由若干个外部声明和一个文件结束符组成符
外部声明可以是声明也可以是函数定义
程序a中有三个外部声明
一个是声明 int x=....
两个是 函数定义
函数定义由 类型区分符 声明符 函数体组成
类型区分符 就是 int void char short 或者自己定义的结构体类型
自己定义的结构体 是
struct 名称 或者是
struct 名称
{
类型区分符 声明符,声明符......;
......
}
声明符 是
[*] 标识符 [声明符后缀]
声明符出现*时一般是与前面的类型区分符搭配表示 指针
如 int *p 定义了一个整型指针p
声明符后缀是
'[' 整型变量 ']' 带单引号的括号表字符 或
'('类型区分符 声明符,类型区分符 声明符,......')'
定义函数的时候 int fun(int a)
fun(int a)是一个声明符
(int a)是声明符后缀
定义结构体的时候
struct node
{
int a[4];
}
a[4]就是个声明符
[4]是声明符后缀
函数体是一个复合语句
{
语句1
语句2
......
}
声明
类型区分符; 或
类型区分符 声明符[=初始值],声明符[=初始值].......;
比如 int a=3,b=4,x;
就是个声明