我们可以把程序看作是由多个零件组成的机械,而函数就是这种“零件”中的较小的一部分。
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
如有侵权,请联系博主修改或删除。
今天的文章
c语言中的函数?什么是库函数呢_c++基础知识分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81320.html