C语言中,为什么要说明函式原型?
1个回答
展开全部
C语言中,为什么要说明函式原型? 函式原型能告诉编译程式一个函式将接受什么样的引数,将返回什么样的返回值,这样编译程式就能检查对函式的呼叫是否正确,是否存在错误的型别转换。例如,现有以下函式原型;
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 */
......
}
总之,在原始档中说明函式原型提供了一种检查函式是否被正确引用的机制。目前许多流行的编译程式都会检查被引用的函式的原型是否已在原始档中说明过,如果没有,就会发出警告讯息。
C语言后定义函式,前面在函式原型中为什么要加*?
传递引数为阵列或者指标。形参都是以指标形式表示。
你的例,第一个引数的实参为int型,第二个的实参可以是int阵列名(第一元素地址)、int型指标(指标的值就是地址)、int值的地址(&x)
int *是一个型别
就好比如char也是一个型别。double也是一个型别。
int型别 int *型别这是两个型别
c语言中为什么要定义初值函式
为了给相对应的变数一个初始值,有的变数是因为程式功能需要一个初始值,有的变数因为如果不给初始值的话就会变成随机内容
C语言中 gets()函式的原型是?
大概是这样的char *gets(char *string){ int i; for(i=0;string[i]!='\n';i++) string[i] = getchar(); return string;}
C语言为什么要对所用到的函式进行原型说明?说明一个函式的原型应包括哪几方面的内容?
C++/C是强型别的语言,这是为了告诉编译器这个函式的存在,如果函式定义在使用之后,那么在使用之前必须对函式原型进行说明,以进行函式引数的检查.
原型说明的格式为:
返回型别 函式名(引数1型别, 引数2型别,...)
其中引数说明只需要说明其型别,不用写形参名称也是可以的.
C语言中为什么要引入函式的概念
函式就是完成特定的功能的。
比如sin函式事先编好储存在函式库,需要用的时候写上sin(a);多方便。
C语言为什么要有 main 函式
c++中为什么需要main函式的解释如下:
1、这个是由系统的C++执行时决定的,编译器生成目标系统上的可执行档案时,作业系统启动的入口就是C++执行时(C++ runtime system), 然后执行时完成初始化之后会呼叫main函式。
2、main函式定义了函式呼叫的入口,具体用法如下:
(1)main()函式及其引数
C++标准允许主函式main()有或没有引数列表。 您能在主函式main()中使用一个或更多的引数。 如下是一些惯例:
int main(int argc, char *argv[])
第一个引数argc,指明有多少个引数将被传递给主函式main(),真正的引数以字串阵列(即第2个引数argv[])的形式来传递。每一个字串均有自己意思。在这句法上面, 记住, argc代表引数的数量, main()函式本身是在索引0为的第一引数。
(2)所以, argc总是至少为1 。它的总数是从argv列阵的元素数目。 这意味着, argv[0]的值是至关重要的。 如果使用者在控制台环境中程式名称后键入含引数的指令, 那么随后的引数将传递给argv[1] 。 例如, 如果程式名称为main,并且已经事先编译好了,这时如果使用者键入:D:/MyPrograms/AConsoleApp/main 68
值68将会传递给argv[1]
当然取决于你怎么样来编写程式了,也许你的使用者将可以输入如下指令:
D:/MyPrograms/AConsoleApp/main 68 1250.50
因为引数argv是一些字串,将这些字串转换为你需要的值就是我们程式设计师的任务了。
C语言中的随机数函式原型是什么?
初始化随机种子是void srand (unsigned int);
获得随机数是int rand(void);
c语言中return0为什么要将0返回给主函式
return 0 一般固定放在main函式的最后,用来返回给作业系统,表明程式正常退出,也可以不写。
如果是自定义的函式,返回值根据需要来返回。
c语言中函式怎么说明?
宣告的原因与作用:
C语言编译系统是由上往下编译的.一般子函式(使用者定义的函式)放在主函式(main函式)后面的话,前面就该有宣告.不然C由上往下的编译系统将无法识别.
申明的简单例子:
#include<stdio.h>
int fun(int x,int y); 对后面函式宣告语句-------------------
main() |
{int a,b,c; c=fun(a,b);printf("%d",c);} |
int fun(int x,int y) <------------------------------------
{ int z; z=x+y; return z; }
申明的格式:
【返回型别】 函式名(引数1型别 引数1,【引数2型别 引数2,……】);
注意最后的分号,因为这是一个语句
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 */
......
}
总之,在原始档中说明函式原型提供了一种检查函式是否被正确引用的机制。目前许多流行的编译程式都会检查被引用的函式的原型是否已在原始档中说明过,如果没有,就会发出警告讯息。
C语言后定义函式,前面在函式原型中为什么要加*?
传递引数为阵列或者指标。形参都是以指标形式表示。
你的例,第一个引数的实参为int型,第二个的实参可以是int阵列名(第一元素地址)、int型指标(指标的值就是地址)、int值的地址(&x)
int *是一个型别
就好比如char也是一个型别。double也是一个型别。
int型别 int *型别这是两个型别
c语言中为什么要定义初值函式
为了给相对应的变数一个初始值,有的变数是因为程式功能需要一个初始值,有的变数因为如果不给初始值的话就会变成随机内容
C语言中 gets()函式的原型是?
大概是这样的char *gets(char *string){ int i; for(i=0;string[i]!='\n';i++) string[i] = getchar(); return string;}
C语言为什么要对所用到的函式进行原型说明?说明一个函式的原型应包括哪几方面的内容?
C++/C是强型别的语言,这是为了告诉编译器这个函式的存在,如果函式定义在使用之后,那么在使用之前必须对函式原型进行说明,以进行函式引数的检查.
原型说明的格式为:
返回型别 函式名(引数1型别, 引数2型别,...)
其中引数说明只需要说明其型别,不用写形参名称也是可以的.
C语言中为什么要引入函式的概念
函式就是完成特定的功能的。
比如sin函式事先编好储存在函式库,需要用的时候写上sin(a);多方便。
C语言为什么要有 main 函式
c++中为什么需要main函式的解释如下:
1、这个是由系统的C++执行时决定的,编译器生成目标系统上的可执行档案时,作业系统启动的入口就是C++执行时(C++ runtime system), 然后执行时完成初始化之后会呼叫main函式。
2、main函式定义了函式呼叫的入口,具体用法如下:
(1)main()函式及其引数
C++标准允许主函式main()有或没有引数列表。 您能在主函式main()中使用一个或更多的引数。 如下是一些惯例:
int main(int argc, char *argv[])
第一个引数argc,指明有多少个引数将被传递给主函式main(),真正的引数以字串阵列(即第2个引数argv[])的形式来传递。每一个字串均有自己意思。在这句法上面, 记住, argc代表引数的数量, main()函式本身是在索引0为的第一引数。
(2)所以, argc总是至少为1 。它的总数是从argv列阵的元素数目。 这意味着, argv[0]的值是至关重要的。 如果使用者在控制台环境中程式名称后键入含引数的指令, 那么随后的引数将传递给argv[1] 。 例如, 如果程式名称为main,并且已经事先编译好了,这时如果使用者键入:D:/MyPrograms/AConsoleApp/main 68
值68将会传递给argv[1]
当然取决于你怎么样来编写程式了,也许你的使用者将可以输入如下指令:
D:/MyPrograms/AConsoleApp/main 68 1250.50
因为引数argv是一些字串,将这些字串转换为你需要的值就是我们程式设计师的任务了。
C语言中的随机数函式原型是什么?
初始化随机种子是void srand (unsigned int);
获得随机数是int rand(void);
c语言中return0为什么要将0返回给主函式
return 0 一般固定放在main函式的最后,用来返回给作业系统,表明程式正常退出,也可以不写。
如果是自定义的函式,返回值根据需要来返回。
c语言中函式怎么说明?
宣告的原因与作用:
C语言编译系统是由上往下编译的.一般子函式(使用者定义的函式)放在主函式(main函式)后面的话,前面就该有宣告.不然C由上往下的编译系统将无法识别.
申明的简单例子:
#include<stdio.h>
int fun(int x,int y); 对后面函式宣告语句-------------------
main() |
{int a,b,c; c=fun(a,b);printf("%d",c);} |
int fun(int x,int y) <------------------------------------
{ int z; z=x+y; return z; }
申明的格式:
【返回型别】 函式名(引数1型别 引数1,【引数2型别 引数2,……】);
注意最后的分号,因为这是一个语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询