作用
提高代码的复用率
提高程序的模块化组织性
分类
系统库函数和用户自定义函数
系统库函数:
1、导入头文件
2、根据函数原型调用
用户自定义:
除了需要提供函数原型之外,还需要提供函数实现
随机数
1、播种随机数种子:
srand(time(NULL));
2、引入头文件:
#include <stdlib.h> <time.h>
3、生成随机数:
rand() % 100;
函数定义
函数原型(返回值类型、函数名、形参列表)和函数体(大括号一对,具体代码实现)
int add(int a,int b,int c){
return a+b+c;
}
函数调用
包含 函数名(实参列表);
实参在调用时,严格按照形参填充,个数、类型、顺序必须一样
函数声名
要求在函数调用之前,编译器必须见过函数定义,否则需要函数声名
包含 函数原型+;
隐式声名【不要依赖他】
编译器如果在没看到你的声名时,会进行隐式声名
默认返回值是int 然后将声名复制过来,有时会出错
return和exit
return关键字在底层是调用_exit()实现的
return:返回当前函数调用,将返回值返回给调用者
exit:直接退出当前程序
多文件联编
将多个含有不同函数功能的.c文件模块,编译到一起,生成一个.exe文件
防止头文件被重复包含(也叫头文件守卫):
法1:
#pragma once //只导入一次,只在Windows下用
法2:
#ifndef __HEAD_H__ 后面的英文是我把头文件取名为head.h
#define __HEAD_H__
.....头文件内容
#endif
#include导入时,<>表示系统库头文件,用户自定义的头文件是双引号来包括