今天主要学习了c语言中的函数部分。
一、概念
c语言中的函数是为了实现某一个功能的
函数的定义方法:
类型标识符 函数名(形式参数)
{
声明部分
语句部分
}
注意 :(1).类型标识符 (返回值的类型标识符)
返回值类型
返回值 如果没有,返回值类型 一般写成void
返回的结果的类型 与 定义返回值类型 不一致 ,以定义的返回值类型为准
返回值的类型如果不写,默认为int型
(2).函数名 --- 一般和函数功能对应
(3).形式参数 --- 函数接收数据的入口
形参 --不是一定要有
看函数功能的需要
形参没有,一般写成 void
形参使用时:
a.个数相同
b.类型匹配
(4).函数体 --- 完成函数具体功能的代码
函数定义的位置一般在主函数前面或者主函数后面,但要注意的是当定义在主函数后面时,前面要调用该函数是要在调用前进行声明,声明的方式就是将函数头复制过来加个分号。
二、函数调用的原理
注意:c语言中将内存分为5个区域
1.栈
存放函数形参和局部变量,特点是自动申请自动释放,存在里面的数据先进后出。在linux操作系统中栈默认为8mb的大小,也可自行设置大小
2.堆
特点是非常大,需要手动申请,手动释放
3.全局区(静态区)
存放全局变量和静态变量
4.字符串常量区
存放字符串常量
5.代码区
存放程序的二进制代码,内存由系统管理
在函数调用的过程中,常常要完成一个动作就是保护现场,通俗来讲就是当一个程序要跳往一个函数时,首先要将一些数据存放在栈中,最后返回main函数时就是通过保护现场时存放的数据来恢复现场。