代码一开头先声明下函数,之后再定义函数,为何定义函数的时候也需要写函数的返回类型?

之前不是已经声明过了么,为何定义的时候还需要些函数返回值类型呢?

有时候,定义又可以忽略某些东西。比如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;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-18
inline这个是告诉你他是内联函数,不是返回类型。 内联函数和普通函数的区别:程序调用的时候,内联函数直接加载函数体调用,不管程序调没调用 这个函数的代码都加载进来了。普通函数是当程序调用这个函数的时候才动态去获取这个函数的实现体。

至于函数声明和定义这个是标准规范。不需要我们寻根问底的。
第2个回答  2013-06-18
inline属于关键词,声明一个函数是内联函数,这种关键词在声明后,定义时候是可以省略的。但是函数类型是无论怎么样都不能省略的,它是函数的基本结构。本回答被网友采纳
第3个回答  2013-06-18
fun(void) void 可以省略
相似回答