函数的作用
1. 函数定义
定义语法:
返回类型 函数名(数据类型 参数1, 数据类型 参数2, …) {
// 函数体
return 表达式;
}
说明:
- 返回值类型:可以是int、long、double、float、char或void(表示不返回数据),但不能返回数组
- 返回值用途:
- 表示函数调用状态(0成功/1失败)
- 返回计算结果
- 函数名:遵循标识符规则(字母、数字、_,不能数字开头),应见名知意
- 参数:用于模块间交互,多个参数用逗号分隔,必须指定数据类型
- 默认返回类型为int
int compareTwoNum(int a, int b) {
if(a > b) {
printf("num1 > num2\\n");
} else {
printf("num1 <= num2\\n");
}
return 0;
}
2. 函数调用
调用前需先声明函数:
int compareTwoNum(int a, int b); // 声明放在.h头文件中
int show();
调用方式:
- 使用函数调用运算符()
- 参数类型和数量必须匹配,可以是常量、变量或表达式
- 调用时程序跳转到函数体执行,执行完毕后返回调用处
- 函数调用是表达式,具有类型和值(由return返回)
show() + 1;
3. 变量作用域与生命周期
作用域
- 局部变量:
- 定义在函数内部或{}块中
- 作用域为离定义最近的大括号范围
- 内层同名变量会遮蔽外层变量
- 全局变量:
- 可在整个工程中访问
- 未初始化时默认值为0
生命周期
- 局部变量:
- 从定义处开始,到所在函数/代码块结束时回收
- 全局变量:
- 从程序开始运行创建,到程序结束时回收
4. 存储类型
| auto | 默认的局部变量(存储在栈区),可省略 |
| register | 建议将变量存储在CPU寄存器中 |
| extern | 用于多文件编程,声明外部定义的变量或函数 |
| static | 静态变量(存储在数据区),具有全局生命周期但受作用域限制,默认初始化为0 |
内存布局:
- 代码段:只读的程序代码
- 数据段:全局变量和static变量,程序启动时创建
- 堆空间:手动申请/释放(malloc/free),占内存大部分空间
- 共享库:只读的库函数实现
- 栈:存储局部变量、函数参数和返回地址,自动管理(约8MB)
网硕互联帮助中心








评论前必须登录!
注册