函数声明和函数定义的关系是什么?
函数先声明才可以被调用,如同变量先声明后使用。函数的声明也可以和函数定义分开。一个函数只可以定义一次,但是可以声明多次。
“函数定义”是指对函数功能的确立,包括指定函数名,函数值类型、形参类型、函数体等,它是一个完整的、独立的函数单位。
而“函数声明”的作用则是把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)。
扩展资料:
两者区别:
函数的声明与函数的定义形式上十分相似,但是二者有着本质上的不同。声明是不开辟内存的,仅仅告诉编译器,要声明的部分存在,要预留一点空间。定义则需要开辟内存。
1、函数的定义
函数的定义是一个完整的函数单元:
1)包含函数类型、函数名、形参及形参类型、函数体等
2)在程序中,函数的定义只能有一次
3)函数首部与花括号间不加分号
2、函数的声明
函数声明只是对编译系统的一个说明:
1)函数声明是对定义的函数的返回值的类型说明,以通知系统在本函数中所调用的函数是什么类型。
2)不包含函数体(或形参)。
3)调用几次该函数就应在各个主调函数中做相应声明,
4)函数声明是一个说明语句,必须以分号结束,
参考资料来源:百度百科-函数声明
函数先声明才可以被调用,如同变量先声明后使用。函数的声明也可以和函数定义分开。一个函数只可以定义一次,但是可以声明多次。
1、一个函数一般由两部分组成:声明部分和执行语句。
2、对变量而言,声明与定义的关系稍微复杂一些。在声明部分出现的变量有两种情况:一种是需要建立存储空间的,另一种是不需要建立存储空间的。前者称为定义性声明,简称定义;后者称为引用性声明。
3、一般为了叙述方便,把建立存储空间的声明称定义,而把不需要建立存储空间的声明称为声明。
4、在函数中出现的对变量的声明(除了用extern声明的以外)都是定义。在函数中对其他函数的声明不是函数的定义。
扩展资料
在书写形式上,函数声明可以把复数头部复制过来,在后面加一个分号;而且在参数表中可以只写各个参数的类型名,而不必写参数名。
每个函数的第一行都是函数头,由声明函数的关键字function、函数名和参数列表三部分组成。每个自定义函数都必须使用function关键字声明。
函数名可以代表整个函数,可以将函数命名为任何名称,只要遵循变量名的命名规则即可。但函数名称必须唯一,且不能与系统函数重名。
声明函数时函数名后面的花括号也是必须有的,在花括号中表明了一组可以接受的参数列表,参数就是声明的变量,然后在调用函数时传递给它值。参数列表可以没有,也可以有—个或多个参数,多个参数使用逗号分隔。
函数体位于函数头后面,用花括号括起来。函数被调用后,执行到retun语句或最外面的花括号后结束,返回到调用的程序。使用关键字return可以从函数中返回一个值,然后返回到调用程序处继续执行。
参考资料来源:百度百科-函数声明
参考资料来源:百度百科-函数
函数先声明才可以被调用,如同变量先声明后使用。函数的声明也可以和函数定义分开。一个函数只可以定义一次,但是可以声明多次。
函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。
函数原型即是上述所说的三个元素:函数返回类型、函数名和形参列表。
也就是说是通过函数原型进行函数声明的!
举个例子:
函数声明:
int fun(int a, int b);
函数定义:
int fun(int a,int b)
{ int c;
c=a+b;
return c; }
扩展资料:
在书写形式上,函数声明可以把复数头部复制过来,在后面加一个分号;而且在参数表中可以只写各个参数的类型名,而不必写参数名。
就像变量可以在头文件中声明,而在源文件中定义一样,函数也可以在头文件中声明,在源文件中定义。
把函数声明直接放在每个使用该函数的源文件中是大多数新手习惯并喜爱的方式,这是合法的。但是这种方式古板且易出错。解决方法就是把函数的声明放在头文件中,这样可以确保对于指定函数其所有声明保持一致。如果函数接口发生变化,则只需修改其唯一声明即可。
将提供函数声明的头文件包含在定义该函数的源文件中,可使编译器能检查该函数的定义和声明是否一致。特别地,如果函数定义和函数声明的形参列表一致,但返回类型不一致,编译器会发出警告或出错信息来指出差异。
参考资料来源:百度百科——函数声明
参考资料来源:百度百科——函数
int max(int,int); //①函数声明
int main()
{
int a,b,c;
a=2;b=3;
c=max(a,b);
//输出神马的...
return 0;
}
int max(int x,int y) //②定义max这个函数
{
return x>y?x:y;
}
讲通俗一点,函数声明就是告诉编译器这是一个函数,上面的程序中如果去掉①,那么在main函数中调用max函数的时候编译器将会报错,因为此时还没有定义max函数,编译器不知道这个max是什么,如果不想写函数声明,可以将函数定义放在它的使用之前,这样编译器就知道max是个函数了;函数定义就是具体定义函数的功能是什么,这就不用多讲了吧
广告 您可能关注的内容 |