在C语言中怎样定义一个新的函数
发布时间:2025-05-12 07:46:04 发布人:远客网络
一、在C语言中怎样定义一个新的函数
以下答案都是来自谭浩强的《C程序设计》这本书很好懂,是大家公认的C语言入门书籍!强烈建议去买一本或者下一本,我这有WORD版本的,要的话加我QQ我发给你:993437324
在程序中是通过对函数的调用来执行函数体的,其过程与其它语言的子程序调用相似。
C语言中,函数调用的一般形式为:
对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数,变量或其它构造类型数据及表达式。各实参之间用逗号分隔。
在C语言中,可以用以下几种方式调用函数:
1.函数表达式:函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例如:z=max(x,y)是一个赋值表达式,把max的返回值赋予变量z。
2.函数语句:函数调用的一般形式加上分号即构成函数语句。例如: printf("%d",a);scanf("%d",&b);都是以函数语句的方式调用函数。
3.函数实参:函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。例如: printf("%d",max(x,y));即是把max调用的返回值又作为printf函数的实参来使用的。在函数调用中还应该注意的一个问题是求值顺序的问题。所谓求值顺序是指对实参表中各量是自左至右使用呢,还是自右至左使用。对此,各系统的规定不一定相同。介绍printf函数时已提到过,这里从函数调用的角度再强调一下。
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
如按照从右至左的顺序求值。运行结果应为:
如对printf语句中的++i,--i,i++,i--从左至右求值,结果应为:
应特别注意的是,无论是从左至右求值,还是自右至左求值,其输出顺序都是不变的,即输出顺序总是和实参表中实参的顺序相同。由于Turbo C现定是自右至左求值,所以结果为8,7,7,8。上述问题如还不理解,上机一试就明白了。
20.4.3被调用函数的声明和函数原型
在主调函数中调用某函数之前应对该被调函数进行说明(声明),这与使用变量之前要先进行变量说明是一样的。在主调函数中对被调函数作说明的目的是使编译系统知道被调函数返回值的类型,以便在主调函数中按此种类型对返回值作相应的处理。
类型说明符被调函数名(类型形参,类型形参…);
类型说明符被调函数名(类型,类型…);
括号内给出了形参的类型和形参名,或只给出形参类型。这便于编译系统进行检错,以防止可能出现的错误。
例8.1 main函数中对max函数的说明为:
C语言中又规定在以下几种情况时可以省去主调函数中对被调函数的函数说明。
1)如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明,而直接调用。这时系统将自动对被调函数返回值按整型处理。例8.2的主函数中未对函数s作说明而直接调用即属此种情形。
2)当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作说明而直接调用。例如例8.1中,函数max的定义放在main函数之前,因此可在main函数中省去对max函数的函数说明int max(int a,int b)。
3)如在所有函数定义之前,在函数外预先说明了各个函数的类型,则在以后的各主调函数中,可不再对被调函数作说明。例如:
其中第一,二行对str函数和f函数预先作了说明。因此在以后各函数中无须对str和f函数再作说明就可直接调用。
4)对库函数的调用不需要再作说明,但必须把该函数的头文件用include命令包含在源文件前部。
二、c语言一个程序由几个函数组成
1、一个C程序由一个主函数和若干个其他函数组成。若干个的意思就是可以有0个及以上个。c语言的程序模块称为函数。
2、C语言可以进行多种方式进行程序的设计,它是一种很有特色的高级语言通过若干个函数组成,它具备构成程序设计的 3种基本结构顺序,选择和循环结构。C语言编辑简洁明了,运算符丰富且功能强大还有编译预处理功能。此语言的移植性好不同的处理器用不同的编译器编译指令达到移植的效果。
3、C语言普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。具体体现在以下三个方面:
4、其一,广泛性。C语言的运算范围的大小直接决定了其优劣性。C语言中包含了 34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。
5、其二,简洁性。9类控制语句和 32个KEYWORDS是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以使用广大编程人员的操作,提高其工作效率,同时还能够支持高级编程,避免了语言切换的繁琐。
6、其三,结构完善。C语言是一种结构化语言,它可以通过组建模块单位的形式实现模块化的应用程序,在系统描述方面具有显著优势,同时这一特性也使得它能够适应多种不同的编程要求,且执行效率高。
三、如何在C语言中定义一个函数
1、在C语言中,一个标准的函数定义语句块必须包含函数返回值的类型标识符、函数名、形参类型及数量、函数体、返回值表达式。如果函数返回值类型为 void(即无返回值),则在两个大括号之间不能写带有返回值表达式的 return语句,否则编译器就会报错。你写的 test函数返回值类型为 void,而你在函数定义语句块内写下了 return语句,编译器自然会报错了。
2、你可以将这个函数修改为以下形式: