Linux C 函数

函数的定义

为了使程序大而不繁,简单明了,程序设计者要根据软件的总体要求,把相同的功能或相似的操作归纳成模块的形式,并设计成函数,以实现程序设计的结构化。分解的结果像一颗倒立的大树。


函数定义的一般格式

类型标识符 函数名([参数表列])

{

[声明语句部分]

执行语句部分

}

调用后续声明的函数时,必须在调用之前先进行声明

如果不需要从被调函数带回返回值,可以不要return语句。还可以用不带表达式的return作为函数和逻辑结尾,这时候return的作用是将控制权交给调用函数,而不是返回一个值。

函数的定义与声明例:

1.先定义,后使用

2.main函数在前,定义在后,须在main函数中调用调用前用下面语句进行说明

类型说明符 函数名(类型说明符 形参变量1,类型说明符 形参变量2,....)

函数的参数与返回值

函数的参数分为实参和形参,作用是实现数据的传送。

实参:主调函数传递来的参数为实际参数简称实参,进入被调函数后,实参变量也不能使用在整个函数体内都可以使用,离开该函数则不能使用。

形参:函数名后的参数称为形式参数简称形参,在整个函数体内都可以使用,离开该函数则不能使用。

实参和形参之间的关系:

1.实参的个数、类型应该和形参的个数和类型一致。调用函数时,系统给形参分配储存单元,并把实参的数值传递给形参。

2.实参和形参分别属于主调函数和被调函数,有不同的单元,在函数调用时形参发生变化,不会影响到实参

3.实参和形参是单向值传递,只有实参传递参数给形参,形参不回传参数给实参。

4.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。

函数调用方式
C语言中函数的调用一般形式为:函数名([实际参数列表])
1.函数表达式:函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例:c=add(a+b);
2.函数语句:函数调用的一般形式加上分号即构成函数语句。例如: printf("%d",a)
3.函数实参:函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实 参进行传送, 因此要求该函数必须是有返回值的 。 例如:d=add(a,add(b,c));
调用说明(函数的调用时应注意)
1.函数名称必须与具有该功能的自定义函数名称完全一致
2.实参在数量、类型、顺序上应严格和形参一一匹配
3.函数调用也是一种表达式,其值是函数的返回值
4.被调函数可以是自定义函数,也可以是系统函数,还可以调用自身

5.被调函数中还可以调用函数                                                                                                                                            6.调用后续声明的函数时,必须在调用之前先进行声明                                                                                                         7.函数调用时,被调函数可以是库函数或者用户自定义的函数

比如,求两个整数的最大公约数和最小公倍数:

局部变量和全局变量

局部变量也称为内部变量

在函数内作定义说明的。

随函数的调用而生成,随函数调用结束而释放

作用域仅限于定义它的函数内,离开该函数后再使用这种变量是非法的。

全局变量也称为外部变量

它是在函数外部定义的变量。

它不属于哪一个函数,它属于一个源程序文件。

其作用域是从定义变量的位置开始到所在源程序文件结束。

在函数中使用全局变量,一般应作全局变量说明。只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern。但在函数之前定义的全局变量,在该函数内使用可不再加以说明。

变量的储存类型

从变量值存在的生存期来分,可以分为静态存储方式和动态存储方式。
静态存储方式:是指在程序运行期间分配固定的存储空间的方式。
动态存储方式:是在程序运行期间根据需要进行动态的分配存储空间的方式。

C语言中,具体的存储类别有自动、寄存器、静态及外部四种

自动存储类型(auto):具有动态性,随函数调用而生成,随调用结束而释放;局部变量默认

定义格式如下:auto 数据类型 变量名; 关键字auto可省略

寄存器存储类型(register):大量重复调用时,提高执行效率;仅限于定义它的函数

定义格式如下:register 数据类型 变量名;

外部存储类型(extern):多个程序文件之间进行变量调用;不是变量定义,扩展变量作用域

定义格式如下:extern数据类型 变量名;

静态存储类型(static):存储在固定的内存单元,直到程序运行结束才释放

例如:static double x,y;

注意:

局部变量默认为auto型

register型变量个数受限,且不能为long、double、float型

局部static变量具有全局寿命和局部可观性,具有可继承性

extern不是变量定义,可扩展外部变量作用域

常用函数介绍:

终端与环境变量

getopt()分析命令参数

ttyname()获取终端机名称

日期时间函数<time.h>

time()获取当前时间

ctime()获取字符串格式的日期时间

gmtime()获取当前日期和时间

difftime()计算时间差

字符串处理<string.h>

index()查找字符串中第一个字符出现的位置

strcat()拼接字符串

strcmp()比较字符串

strcpy()复制字符串

数学函数<math.h>

abs()绝对值

cos()余弦

ceil()不小于参数的最小整数

exp()指数

sqrt()开平方

数据结构与算法

crypt()将数据或密码加密

bsearch()二元搜索

lfind()线性搜索

lsearch()线性搜索

rand()产生随机数

srand()设置随机数种子







猜你喜欢

转载自blog.csdn.net/qq_41851370/article/details/79738618