六、函数:函数的定义与调用;函数的声明;多文件编程;exit函数与return关键字

函数;函数的定义;函数的定义与调用; ==================================================================================================================== C 程序是由函数组成的,我们写的代码都是由主函数 main()开始执行的。函数是 C 程序的基本模块,是用于完成特定任务的程序代码单元。 从函数定义的角度看,函数可分为系统函数和用户定义函数两种: 系统函数,即库函数:这是由编译系统提供的,用户不必自己定义这些函数,可以直接使用它们,如我们常用的打印函数printf()。 用户定义函数:用以解决用户的专门需要。 函数定义的一般形式: 返回类型 函数名(形式参数列表) { 数据定义部分; 执行语句部分; } 形参列表:在定义函数时指定的形参,在未出现函数调用时,它们并不占内存中的存储单元,因此称它们是形式参数或虚拟参数,简称形参,表示它们并不是实际存在的数据,所以,形参里的变量不能赋值。 在定义函数时指定的形参,可有可无,根据函数的需要来设计,如果没有形参,圆括号内容为空,或写一个void关键字 函数的定义 //1: right, 类型+变量 void max(int a, int b){} //2: error, 只有类型,没有变量 void max(int, int){} //3: error, 只有变量,没有类型 int a, int b; void max(a, b){} // 没形参, 圆括号内容为空 void max(){} // 没形参, 圆括号内容为void关键字 void max(void){} ------------------------------------------------------------------------------------------------------------------- //函数的定义与调用 #include <stdio.h> void print_test() { printf("this is for test\n"); } int main() { print_test(); // print_test函数的调用 return 0; }

函数的声明;函数定义和声明的区别 ==================================================================================================================== 函数的声明 如果使用用户自己定义的函数,而该函数与调用它的函数(即主调函数)不在同一文件中,或者函数定义的位置在主调函数之后,则必须在调用此函数之前对被调用的函数作声明。 所谓函数声明,就是在函数尚在未定义的情况下,事先将该函数的有关信息通知编译系统,相当于告诉编译器,函数在后面定义,以便使编译能正常进行。 注意:一个函数只能被定义一次,但可以声明多次。 函数的声明示例:(其实就是函数的定义,但是剥离了函数体) void max(int a, int b); void max(int, int) ------------------------------------------------------------------------------------------------------------------- 函数定义和声明的区别: 1)定义是指对函数功能的确立,包括指定函数名、函数类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位。 2)声明的作用则是把函数的名字、函数类型以及形参的个数、类型和顺序(注意,不包括函数体)通知编译系统,以便在对包含函数调用的语句进行编译时,据此对其进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)。

exit函数与return关键字 ============================================= exit函数: #include <stdlib.h> return关键字: 返回当前函数调用,将返回值返回给调用者。 exit()函数: 退出当前程序。

多文件编程:实现功能的模块化,可以把不同的功能放在不同的.c文件中;然后编译到一起,生成一个exe文件 可以将多文件编程分为3部分: 0.编写功能.c文件,函数封装功能实现 1.编写头文件守卫:(为了避免同一个文件被include多次,C/C++中有两种方式,一种是 #ifndef 方式,一种是 #pragma once 方式。) #ifndef __XXXX_H__ // include guard for 3rd party interop #define __XXXX_H__ ...头文件内容(#include <xxx.h>;#define 宏定义;函数声明;类型定义) #endif 3.main.c文件引入自定义头文件 #include "xxxx.h" ----------------------------------------------------------------------- <>包裹的头文件为系统库头文件。 ""包裹的头文件为用户自定义头文件。 防止头文件重复包含:头文件守卫。 1) #pragma once --- windows专用 2) #ifndef __HEAD_H__ <--- head.h (这种方式各平台通用) #define __HEAD_H__ .... 头文件内容 #endif
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!