代码一开头先声明下函数,之后再定义函数,为何定义函数的时候也需要写函数的返回类型?
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/22 08:40:22
代码一开头先声明下函数,之后再定义函数,为何定义函数的时候也需要写函数的返回类型?
之前不是已经声明过了么,为何定义的时候还需要些函数返回值类型呢?
有时候,定义又可以忽略某些东西.比如linline.这个声明的时候写了,定义时就不用写.
之前不是已经声明过了么,为何定义的时候还需要些函数返回值类型呢?
有时候,定义又可以忽略某些东西.比如linline.这个声明的时候写了,定义时就不用写.
1、不管之前有没有声明,定义的时候函数的返回值类型都必须完整定义.比如你将来生一个小孩,他出生后浑身上下什么零件都必须长齐的.
2、前面声明,是为了使得编译器编译到调用这个函数的代码的时候,明白应该怎么匹配各个参数.就好比你孩子还没有到单位去工作,但必须有一张表格把你孩子的基本情况等等信息告知人家,人家才好提前考虑,将来当你孩子真正报到的时候,直接匹配已经安排好的工作即可.
赢天资讯资源社区.
再问: 那怎样算重复声明么?
再答: 重复声明就是声明两次以上喽。 我还是用C做例子来说吧,比如下面这种情况,就是重复声明了。 而如果函数体写了两次,就叫做重复定义了。 其实有的编译器并不认为函数声明两次是错误的,只要每次声明时的返回值、参数完全一致(C++里函数名相同而参数不同又是另一回事了,那种情况下实际上函数名不能算是相同的,因为C++在编译过程中会对函数名改名,改后的名字里同样保留了参数信息,所以只要参数不同,即使名字相同,也算是不同的函数。这个扯远了) 赢天资讯资源社区,源码共享、技术讨论、资料下载。 int A( int b ); int A( int b ); int main( ) { int x = 0; y = A( x ); printf( "%d", y ); } int A( int b ) { int temp = b*100; return temp; }
2、前面声明,是为了使得编译器编译到调用这个函数的代码的时候,明白应该怎么匹配各个参数.就好比你孩子还没有到单位去工作,但必须有一张表格把你孩子的基本情况等等信息告知人家,人家才好提前考虑,将来当你孩子真正报到的时候,直接匹配已经安排好的工作即可.
赢天资讯资源社区.
再问: 那怎样算重复声明么?
再答: 重复声明就是声明两次以上喽。 我还是用C做例子来说吧,比如下面这种情况,就是重复声明了。 而如果函数体写了两次,就叫做重复定义了。 其实有的编译器并不认为函数声明两次是错误的,只要每次声明时的返回值、参数完全一致(C++里函数名相同而参数不同又是另一回事了,那种情况下实际上函数名不能算是相同的,因为C++在编译过程中会对函数名改名,改后的名字里同样保留了参数信息,所以只要参数不同,即使名字相同,也算是不同的函数。这个扯远了) 赢天资讯资源社区,源码共享、技术讨论、资料下载。 int A( int b ); int A( int b ); int main( ) { int x = 0; y = A( x ); printf( "%d", y ); } int A( int b ) { int temp = b*100; return temp; }
代码一开头先声明下函数,之后再定义函数,为何定义函数的时候也需要写函数的返回类型?
声明和定义函数时,是否必须给出函数的返回值类型?
函数的声明与定义问题函数的声明是告诉编译器函数的返回值类型,参数名与类型,函数名.而函数的定义同样可以有返回值类型,参数
函数声明与函数定义的区别
在声明或定义函数时,函数的参数类型必须得写名吗?参数名呢?
函数声明和函数定义的关系是什么?
在C语言中,函数返回值的类型最终取决于( ) A函数定义时再函数首部所说明的函数类型 Breturn语句中表达式
C++中,一般什么类型的函数需要定义为内置函数?内置函数是不是可以是类中的函数也可以是类外独立的函数?
C语言 函数定义 函数声明 区别
当一个函数无返回值时,函数的类型应定义为
请问C语言中函数定义,函数声明和函数调用的区别?
C语言中函数类型与函数定义的区别?