1.函数概述
函数是一种可重用的代码块,用于执行特定任务或完成特定功能
函数作用:对具备相同逻辑的代码进行封装,提高代码的编写效率,实现对代码的重用
2. 函数的使用
2.1 无参无返回值
#include <stdio.h>// 函数名是标识符的一种,需要遵循规则
// 函数只需要定义一次,反复调用
// 只定义函数, 不调用函数, 函数永远不会被执行
void add(){int res = 1+2;printf("%d\n",res);}
int main() {add();return 0;
}
;
执行流程:
注: 函数名是标识符的一种,需要遵循规则
函数只需要定义一次,反复调用
只定义函数, 不调用函数, 函数永远不会被执行
2.2 有参无返回值
函数参数的作用:增加函数的灵活性
可以根据需求在调用函数时, 通过参数传入不同的数据
语法格式:
// 函数定义
void 函数名(形参列表) {
函数体
}// 函数调用
函数名(实参列表);
执行流程:
2.3 有参有返回值
函数返回值的作用:函数外部想使用函数内部的数据
注意:return的作用是结束函数函数内,return后面的代码不会执行
3.函数的声明
如果函数定义代码没有放在函数调用的前面,这时候需要先做函数的声明
所谓函数声明,相当于告诉编译器,函数是有定义的,再别的地方定义,以便使编译能正常进行
注意:一个函数只能被定义一次,但可以声明多次
4. 局部变量和全局变量
4.1 局部变量
定义在函数内部的变量称为局部变量(Local Variable)
局部变量的作用域(作用范围)仅限于函数内部, 离开该函数后是无效的
离开该函数后,局部变量自动释放
4.2 全局变量
在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件
5. 多文件编程(重点)
5.1 防止头文件重复包含
当一个项目比较大时,往往都是分文件,这时候有可能不小心把同一个头文件 include 多次,或者头文件嵌套包含。
为了避免同一个文件被include多次,C/C++中有两种方式。
方法一:
#ifndef __SOMEFILE_H__
#define __SOMEFILE_H__// 声明语句
#endif
方法二(嵌入式不能用):
#pragma once // 声明语句
5.2 命令行编译程序
gcc -g main.c func.c -o main.exe
- -g 指定编译的文件,多个文件用空格隔开。注意:只需要编译c文件,h文件不需要加入进去;
- -o 指定生成可执行文件的名字;
ps:命令行显示中文乱码,修改命令:chcp 65001
5.3 头文件包含的区别:
-
<> 表示系统直接按系统指定的目录检索
-
"" 表示系统先在 "" 指定的路径(没写路径代表当前路径)查找头文件,如果找不到,再按系统指定的目录检索
多文件编程运行结果出现中文乱码:在命令行输入:chcp 65001
再编译执行。