扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
函数原型能告诉编译程序一个函数将接受什么样的参数,将返回什么样的返回值,这样编译程序就能检查对函数的调用是否正确,是否存在错误的类型转换。例如,现有以下函数原型;
成都创新互联专注于寿阳企业网站建设,成都响应式网站建设公司,电子商务商城网站建设。寿阳网站建设公司,为寿阳等地区提供建站服务。全流程按需定制制作,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
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 语言中的函数定义的一般形式如下:
return_type function_name( parameter list )
{
body of the function
}
在 C 语言中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:
返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void。
函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
函数主体:函数主体包含一组定义函数执行任务的语句。
是的,不过不叫说明,而叫声明(declaration),作用是令编译器知道有这样一个函数存在。声明的形式是返回值 函数名(形参类型列表)。形参名可有可无。以下均为函数声明:
int foo(int a, int b);
void bar(int, int);
char* fooBar(int[], const char* s);
任何函数在使用前必须要声明,即声明语句必须出现在第一次调用该函数的位置之前。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流