C语言中的函数?什么是库函数?

我们可以把程序看作是由多个零件组成的机械,而函数就是这种“零件”中的较小的一部分

1.main函数和库函数

main函数

对于初学者来说,目前见过的,自己编码过的程序格式大多如下:

而其中main()被称为main函数,也叫做主函数。C语言程序设计中,main函数是必不可少的,程序运行的时候,会执行main函数的主体部分。程序执行总是从main函数开始,如果有有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序。

而main前面的int表示main函数执行结束的时候返回⼀个整型类型的值。所以在main函数的最后写 return 0; 正好前后呼应。

• main函数是程序的入口

• main函数有且仅有一个

• 即使⼀个项目中有多个.c文件,但是只能有⼀个main函数(因为程序的入口只能有一个)

很多新手在写一些简单程序的时候发现程序总是出现错误,而主体部分的语言、格式并没有出现错误,可能就是main函数出了问题。新手在书写main函数时,尝尝出现:

1.main的拼写错误

2.main后面的()漏写

3.代码中的“、”,“()”等符号,需使用英文输入法拼写

库函数

main函数中使用了printf、scanf、puts等函数。由C语言提供的这些为数众多的函数称为库函数(library function)。

什么是库函数?

为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了⼀组函数,这些函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用。这些函数组成了一个函数库,被称为标准库,这些函数也被称为库函数。在这个基础上⼀些编译器厂商可能会额外扩展提供部分函数(这些函数其他编译器不一定支持)。

C语言标准规定的函数,我们称为标称库。

C89标准库总共划分为15个部分,每个部分用一个头描述。C99又新加了9个头,总共有24个头。

<assert.h>   <inttypes.h>   <complex.h>   <iso646.h>   <ctype.h>   <limits.h>                              <errno.h>     <locale.h>       <fenv.h>           <math.h>      <float.h>     <setjmp.h>                            <signal.h>    <stdlib.h>        <stdarg.h>        <string.h>      <stdbool.h><tgmath.h>                        <stddef.h>   <time.h>          <stdint.h>        <wchar.h>    <stdio.h>    <wctype.h>

其中加粗部分为C99新增     

⼀个系列的库函数一般会声明在同⼀个头文件中,所以库函数的使用,要包含对应的头文件。 库函数比较多,可参考链接:https://cplusplus.com/reference/clibrary/

  大多数编译器会使用更大的库,其中也包含了很多上图没有的头。额外添加的头不属于标准库的范畴,所以我们不能假设其他的编译器也支持这些头。这类头通常提供一些针对特定机型或特定操作系统的函数(这也解释了它们为什么不属于标准库),它们可能会提供允许对屏幕或键盘做更多控制的函数。用于支持图形或窗口界面的头也是很常见的。

  标准头主要由函数原型、类型定义以及宏定义组成。如果我们文件中调用了头中声明的函数,又或是使用了头中定义的函数或宏,就需要在文件开头将相应的头包含进来。当一个文件包含多个标准头时,#include的指令顺序无关紧要。多次包含同一个标准头也是可以的。(如果有需要,会在后面单开一则文章讲述24个标准头的含义及其运用。)

2.什么是函数?

   通过后面的语言学习,创造函数是每个人的必经之路,那么先来尝试一些简单的函数。

创造一个函数,接受两个整数参数,返回整数较大的值。我们用线路图来表示这个函数。

  例如printf和scanf这类创建的比较好的函数,即使不知道其内容,只要知道的它们的使用方法,也可以轻松使用。

  要想也建立出同样的方便使用的函数,就需要站在函数创建者和使用者两个立场来进行学习。 

函数定义

  首先学习函数的创建方法,我们先来定义一个max2函数。

函数名称为max2。接受int型的形参a、b。求最大值。将求得的int型的值返回到调用源。

这里的函数定义(function definition)由多个部分组成

函数头(function header)

此处的函数头为“int max2 (int a,int b)”。该部分表示函数的名称和格式。虽然称为函数头,实际上说它是函数的“脸”可能更为合适。

1.返回类型(return type)

函数返回的值---返回值(retrun value)的类型。在该函数的情况下,返回的是两个int型数值中较大的一个,所以其类型是int。它指的是函数或方法在执行完成后返回给调用者的数据类型。在不同的编程语言中,返回类型可以有不同的表现形式和含义。

返回类型不仅限于简单的数据类型,也可以包括复合类型,如对象、数组或其他结构体。例如,如果有一个方法负责计算多个学生的平均成绩,那么该方法的返回类型将是包含所有学生成绩的平均数,这是一个复合类型的数据。

2.函数名(function name)

函数的名称。从其他零件调用函数时,使用函数名。(此处的函数名称是max2)

函数名是一个由字母、数字和下划线组成的标识符,采用驼峰命名法或下划线命名法。通过使用合适且易于理解记忆的函数名,在程序中可以更方便地引用并调用相应功能模块,提高代码可读性与可维护性。

3.形参声明(parameter type list)

小括号括起来的部分,是用于接收辅助性提示的变量---形式参数(parameter)的声明。

像该函数这样接收多个形参的状态下,应用逗号将他们分开。

函数体(function body)

函数体是用花括号括起来的若干语句,他们完成了一个函数的具体功能。

函数体内的前面是定义和说明部分,后面是语句部分。

函数声明与函数体放在一起组成了函数定义。

举个例子:main(){printf()();printf()();}

其中函数体是花括号内的所有语句的集合,包括花括号在内

  函数体是复合语句。仅在某个函数中使用的变量,原则上应在该函数中声明和使用,但是要注意不能声明和形参同型的变量,否则会发生变量名冲突的错误。

文章中部分图片以及内容借鉴于

1.C programming:A Modern Approach,Second Edition(K.N.King)

2.明解C语言(柴田望洋)

3.https://zhidao.baidu.com/question/692643798690578932.html

如有侵权,请联系博主修改或删除。

  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值