gcc编译器:
编译:gcc 源文件.c -c -o 目标文件.o
链接:gcc 目标文件.o -o 应用程序
变量的声明:告诉系统变量的类型和变量的名字。
变量的定义:在内存空间中给变量划分一个空间。
变量的初始化:第一次给变量赋值。
语句块,复合语句:在同一个大括号内,连续书写的语句。
变量的作用域/生命周期:变量在声明他的地方开始存活,直到遇到语句块的右大括号死亡。
函数function:(函数的概念只有在c语言中存在,在uboot下没有这个概念)
type functionname (type parameter,type patameter){body;}
函数性质:可重复性,通用性
函数声明:告诉系统由这样一个函数,函数的名称,函数的参数个数和类型
函数的定义:告诉系统这个函数怎么实现/怎么操作(动作)
函数的调用:真正去执行这个函数
信息隐藏(information hiding)
在使用一个函数的时候,我们只需要定义出他的输入和输出值,而不关心他的实现,也就是说,我们的函数可以重复使用,每次使用的时候只需改变输入值
(在使用一些与操作系统有关的系统函数调用的时候,最好对系统函数进行封装,这样在对程序进行移植的时候,可以更加方便的进行改写,提高了效率)
函数注释的书写
/**
*函数的功能描述
*@param参数名 参数的描述
*@return 返回值的描述
*/
函数使用4步:
1,头文件 2,函数功能-函数名 3,输入参数 4,返回值
栈帧 stack frame
函数的帧框是层层堆叠的,注意,main函数的帧框是被子函数factorial的帧框覆盖了,所以称为栈帧。每个帧都放在一个框架中,然后层层堆叠作为函数等待调用。
变量:
局部变量:在一个函数内部定义的变量(在栈中开辟空间,调用结束后释放)
全局变量:在函数外部定义的变量(在全局静态区中开辟空间),允许外部变量与局部变量同名,同名时外部变量被屏蔽
静态变量:static type name
静态局部变量:只能用于本函数中,其他的地方不可以访问该变量。变量的值在函数结束的时候不会消失,他占用的空间不会被释放。下次该函数在使用这个静态变量时,该变量的值就是上次函数的值。