C语言—函数(function)函数定义、函数声明、函数调用!
函数
作用:提高代码复用率,提高程序模块组织性。
分类:系统库函数,标准C库 ·libc
1):必须要引入头文件#include<xxx.h>函数声明
2):根据函数库函数原型,调用函数
用户自定义函数
bubble_sort() , ruprint(),除了需要提供函数原型之外,还需要提供函数实现。
使用函数:函数定义、函数声明、函数调用
函数定义:函数定义必须包含“函数原型”和函数体。
函数原型:返回值类型 + 函数名 + 形参列表
形参列表:形式参数列表,一定包含类型名、形参名。
//加法函数
int add(int a, int b)
函数体:一对{}包裹函数实现
int add(int a , nit b)
{
int ret = a + b;
return 0;
}
函数调用:包含函数名(实参列表)
实参:(实际参数)在调用时,传参必须严格按照形参填充,(参数个数,类型顺序)实现在调用时,没有类型指述符。
int m = 20;
int n = 34;
inr ret = add(m, n);
函数声明:包含函数原型(返回值类型 + 函数名 + 形参列表)
int add(int a, int b);
要求在函数调用之前,编译器必须是过函数定义,否则要求函数声明。如果没有函数声明,编译器默认“隐式声明”,编译器认为所有的函数,返回值都是int 可以根据函数调用,推断函数原则。
#include<xxx.h>内部,包含函数声明。
exit 函数
return 关键字,返回值当前函数调用,将返回值返回调用者(在底层,会调用exit() 函数)。
exit () 函数 : 退出当前程序
函数声明:
//int test(int a, char ch);
int test(int, char); //函数声明的简化写,声明时形参可以省略
//函数调用
int main(void)
{
int ret = test(10, 'a'); //test函数调用结束,return 给 main
printf("test函数返回:ret = %d\n", ret);
//return 0; //返回给调用者(启动例程)
exit(0); //结束程序
}
//函数定义
int test(int a, char ch);
{
printf("a = %d\n", a);
printf("ch = %d\n", ch);
exit(97); //使用#include(stdib.h)
}
多文件编程
解决方案—右键—添加—新建项目
多文件—右键—设为启动项目
头文件守卫:为了防止头文件被重复包含
1):#pragma Once是VS自动生成的,只应用于windows系统
2):#ifndef HEAD_H
#define HEAD_H
头文件内容:#include<xxx.h>
//宏定义:#define PI 3.14
函数声明:类型定义:#endif
#ifndef _HEAD_H_ //标准引入头文件
#define _HEAD_H_
//include 头文件
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
//函数声明
int add(int a, int b);
int sub(int a, int b);
//宏定义
#define PI 3.14
类型定义:#endif
< > 包裹的是系统库头文件
“ ” 包裹的是,用户自定义头文件
// main 函数所在的 C · 头文件
#include " head.h";