对于函数的定义:
函数是具有某一功能的一段代码,是C语言管理代码的单位,把代码分装成函数,技能方便C语言的调用,也能使代码更简洁.
函数分类
- 标准库函数
- 系统函数
- 第三方库函数
- 自定义函数
一、常用的标准库函数
注意:C语言标准为委员会为C语言以函数形式提供的一些基础功能,被封装在libc.so库中,使用时需要包含头文件(stdlib.h),用 函数名(参数)即可以调用。
int isalnum(int c);
功能:当以是数字、字母字符返回真 return true
int isalpha(int c);
功能:当c是字母时返回真 return true;
int isdigit(int c);
功能:当c是数字字符时返回真
int islower(int c);
功能:当c是小写字母时返回真
int isupper(int c);
功能:当c是大写字母时返回真
int abs(int num);
功能:返回num的绝对值
以下函数被封装在libm.so库文件中。
double sqrt(double x);
功能:返回x的平方根
double pow(double x, double y);
功能:返回x的y次方
double floor(double arg);
功能:返回小于等于arg的最大整数 //向下取整
double ceil( double num );
功能:返回大于等于num的最小整数 //向上取整
double fabs(double arg);
功能:返回arg的绝对值,用于计算浮点数的绝对值
void srand(unsigned seed);
功能:设置随机种子
int rand(void);
功能:返回一个随机数
time_t time( time_t *time);
功能:返回自19701月1日 00:00:00 到当前时间过了多少秒。
int system(const char *command);
功能:调用系统命令
系统函数:
是操作系统一函数接口的形式提供的一些功能,这些功能包括:
内存管理,信号处理,文件IO,文件管理,进程管理,进程通信,线程管理
线程同步,网路通信.
例如:SOCKET 套接字是用于网络通信的系统函数
Windows.h:里面分装了一些windows的接口函数
第三方库函数:
一些开源免费或者收费的库函数。这些函数可以在github或者一些官网上可以找到.
graphics.h :是针对dos的图形处理.在官网上就能下载,里面还有一些案例可以学习
链接: easyx
opencv: 是用于图像处理和人脸识别的库函数。也可以在github上找库和源码学习
链接:opencv
提取码:a5q9
glog 日志记录
JSON 序列化反序列化
MD5 常用的加密验证
XML 配置文件解析
自定义函数
**自定义函数:**为了更好的管理代码、减少冗余把代码封装成函数。
函数声明:函数声明的目的是为了告诉其它代码函数的调用格式。
格式: 返回值类型 函数名(类型1 变量名1,类型2 变量名2,…);
注意:
1、C语言中函数名一般全部小写,用下划线分隔。
2、如果不需要参数建议写void,不要空着。
3、如果不需要返回值就写void。void fun(void);
隐式声明: 当调用函数时没有定义,编译器会猜测函数的格式,参数列表会根据调用时提供的数据(实参)猜测,返回值会猜成int类型。
函数定义:
返回值类型 函数名(类型1 变量名1,类型2 变量名2,...)
{
函数休;
return val;
}
函数调用:函数名(实参);
返回值会放在调用的位置,可以立即显示,也可以用变量记录下来。
设计函数的准则:
1、一个函数最好只解决一个问题,这样可以降低出错率,提高可读性。
2、最好不依赖其它函数(降低耦合度)。
3、数据由调用者提供,结果也样返回给调用者(通用性)。
4、要考虑调用者提供的非法数据,可以通过返回值方式告诉调用者,或者把可能出现的情况在注释中写明。