C语言里的函数定义和函数说明有什么联系和区别

如题所述

    函数说明:“说明”的意思,即表明当前的程序文件中有这个函数。

函数定义:“定义”的意思,即为该函数下定义——这个函数具体有什么功能(函数体)。

2. 具体请先看代码:

#include<stdio.h>

int sum(int a, int b);        // 函数声明

void main()
{
   int num1, num2;
   scanf("%d%d", &num1, &num2);
   printf("两个数的和为%d", sum(num1, num2));    
}

int sum(int a, int b)        // 函数定义
{
   return a + b;
}

解释一下:

由于C语言的编译,是对c/cpp文件的内容从上至下编译。一般子函数(用户定义的函数)放在主函数(main函数)后面的话,main函数前面就该有声明,不然编译系统将无法识别到子函数。

例如上面这个例子,如果将前面的函数声明注释掉,这个程序运行到main函数中的sum(num1, num2)时就会报错,因为没有在main函数前编译到sum(a, b)这个函数,所以运行中就会识别不了sum这个函数。(如下图所示)


3. 当然,通常情况下,我们也可以直接将整个子函数的函数体(函数定义)放在main前面,这样就可以省略掉函数声明的部分。

#include<stdio.h>

int sum(int a, int b)        // 函数定义
{
   return a + b;
}

void main()
{
   int num1, num2;
   scanf("%d%d", &num1, &num2);
   printf("两个数的和为%d", sum(num1, num2));    
}

以上这个程序同样是可以正确编译运行的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-25
函数原型放在函数定义之前,先声明相应函数的特性。区别很简单,函数原型结束有分号,而函数的定义结束没分号。
例如:int
sum(int
a,int
b);函数原型
int
sum(int
a,int
b)函数定义
{int
c;c=a+b;return
c;}
相似回答