C语言学习05:函数与程序结构
函数的声明和定义
在C语言中,函数的定义顺序是有讲究的:默认情况下,只有后面定义的函数才可以调用前面定义过的函数
如果想把函数的定义写在main函数后面,而且main函数能正常调用这些函数,那就必须在main函数的前面进行函数的声明
函数的声明:
返回值类型 函数名(参数1,参数2,…)
注:如果只有函数的声明,没有函数的定义,那么链接时会出错
多个源文件
项目大,如果都放在一个.c文件源代码会非常多,因此需要创建新的.c文件存放不同的代码
1 | main.c |
include
- 作用
include
是 C
语言 预处理
指令之一,后面跟一个文件名,会根据文件名去查找文件,并把这个文件的内容包含到当前文件中。
- include<> 和 include“”区别
- “”:从父文件夹搜索,找不到去父的父文件夹搜索,找不到去编译器设置的inlcude路径内搜索,找不到则在系统的INCLUDE环境变量内搜索
- <>:编译器设置的include路径内搜索,找不到则在系统的INCLUDE环境变量内搜索
头文件.h 和 源文件 .c的分工
- 函数的声明写在 .h 文件中
- 函数的定义卸载 .c 源文件中
函数的参数
- 形式参数
形参
在定义时编译系统不分配内存,只有在调用函数时才分配内存。调用结束内存被释放。
- 实际参数
实参
出现在主函数中,当函数调用时,函数把实参的值传递给函数的形参,从而实现函数间的传递。
传递的方式有两种:值传递
和 地址传递
局部变量和全局变量
- 局部变量:首先是一个变量,其次是这个变量在程序的
局部范围有效
书写:首字母小写
- 全局变量:首先是变量,其次在
定义处以下才有效
书写:首字母大写
头文件
- include作用:
include:把头文件里的内容原封不动的复制到引用该头文件的地方
。
- 头文件的格式说明
1 | #ifndef 头文件名 // 头文件名的格式是"_头文件名_",注意要大写 |
示例代码:头文件main.h
1 | #ifndef _MATH_H_ // 如果没有定义main.h,则执行下面的代码。这是防止重复定义 |
内部函数和外部函数
- 外部函数:可以被其他源文件调用的函数
在函数声明处添加 extern关键字
,可省略
- 内部函数:只在定义的源文件中有效
在函数的返回值类型前面添加 static关键字
,也称 静态函数
练习
- 形参和实参
输入两个正整数m和n,求从m加到n的和(m<=n),并输出
1 | #include <stdio.h> |
- 定义选择排序和使用选择排序分别在不同的文件中
main.c
1 | #include <stdio.h> |
ssort.c
1 | #include <stdio.h> |
- Post title:C语言学习05:函数与程序结构
- Post author:张建
- Create time:2023-02-13 20:36:40
- Post link:https://redefine.ohevan.com/2023/02/13/C学习/C语言学习05:函数与程序结构/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.