重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
函数由函数头和函数体组成,通俗地讲函数头的格式为type 函数名(参数1,……) 注意括号中可以无参数,也可以有参数,函数名前的type为函数的返回类型,“)”后千万不能加“;”,因为它不是语句,而是函数声明。 接着是由一对“{}”符号括起来的函数体,其中函数体由变量声明部分和执行部分组成,声明部分就是对要用到的变量进行说明,因为C语言变量使用前必须要先声明,执行部分就是程序要执行的语句。详细说明建议你看谭浩强教授主编的“C语言程序设计”。 用句不科学地说法来说明他们的区别就是:C语言中以“;”结束的就是语句,带括号是函数,当然这种观点不科学,但是,万一你一时难于理解的话,那你不防这样去理解,等你以后熟悉C语言了,就不会这样了。
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站建设、网站设计、东洲网络推广、小程序开发、东洲网络营销、东洲企业策划、东洲品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供东洲建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
函数原型能告诉编译程序一个函数将接受什么样的参数,将返回什么样的返回值,这样编译程序就能检查对函数的调用是否正确,是否存在错误的类型转换。例如,现有以下函数原型;
int
some_func(int,char·,long);
编译程序就会检查所有对该函数的引用(包括该函数的定义)是否使用了三个参数并且返回一个int类型的值。如果编译程序发现函数的调用或定义与函数原型不匹配,编译程序就会报告出错或警告消息。例如,对上述函数原型来说,当编译程序检查以下语句时,就会报告出错或警告消息:
x
=
some_func(l);
/*
not
enough
arguments
passed
*/
x
=
somc_funcc*hellol",
1,
"dude:");
/*
wrong
type
of
arguments
used
*/
x
=
aome_funcd,
sir,
2879,
"t");
/*
too
many
arguments
passed
*/
下例中的函数调用同样是不正确的,因为函数some_func()的返回值不是一个long*类型的值。
lvalue=some_func(1,str,2879);
/*some_rune()returns
anint,not
a
long*
*/
同样,编译程序还能检查函数的定义(或函数体)是否与函数原型匹配。例如,当编译程序检查以下函数定义时,就会报告出错或警告消息:
int
some_func(char
*string,longlvalue,int
ivalue)
/*
wrong
order
of
{
parameters
*/
......
}
总之,在源文件中说明函数原型提供了一种检查函数是否被正确引用的机制。目前许多流行的编译程序都会检查被引用的函数的原型是否已在源文件中说明过,如果没有,就会发出警告消息。
你要的是何时说明吧
printf 格式说明符;
%c --字符
%d --十进制整数
%i --同%d
%e --以科学计数法表示浮点数(指数部分以e表示)
%E --以科学计数法表示浮点数(指数部分以E表示)
%f --浮点数
%g --在%e和%f表示中选取择短的一种
%G --在%E和%f表示中选取择短的一种
%o --无符号八进制整数
%s --字符串
%u --无符号整数
%x --无符号十六进制(小写x)整数
%X --无符号十六进制(大写X)整数
%p --输出指针内容
%n --显示至此printf已输入的字符数
%% --显示百分号
scanf 格式说明符;
%c --读字符
%d --读整数
%i --同%d
%e --读浮点数
%f --读浮点数
%g --读浮点数
%o --读八进制数
%s --读字符串
%x --读十六进制整数
%p --读指针
%n --至此已读入的字符数
%u --读无符号整数
%[] --搜索字符集合
C语言的函数定义格式是:
函数返回值类型 函数名 ( 参数列表 )
{
//函数体
}
在使用函数时,要先做声明,格式如下:
函数类型 函数名称 ( 参数列表 );
特别地,在函数声明中的参数列表中,不需给出具体的变量名称,但要给出每个变量的类型。
C语言中,函数调用的一般形式为:
函数名(实际参数表)
对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数、变量或其它构造类型数据及表达式。各实参之间用逗号分隔。
#includestdio.h
int fun(int x, int y); // 函数声明,如果函数写在被调用处之前,可以不用声明
void main()
{
int a=1, b=2, c;
c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值
}
// 自定义函数fun
int fun(int x, int y) // 函数首部
{ // {}中的语言为函数体
return xy ? x : y; // 返回x和y中较大的一个数
}
扩展资料
C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。
这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。其关系可表示如图。
图表示了两层嵌套的情形。其执行过程是:执行main函数中调用a函数的语句时,即转去执行a函数,在a函数中调用b 函数时,又转去执行b函数,b函数执行完毕返回a函数的断点继续执行,a函数执行完毕返回main函数的断点继续执行。
参考资料:函数调用_百度百科