【C语言】函数的声明和定义

时间:2022-12-01 18:19:15

????write in front????   

????大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流????

????2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家博主 & 星级博主~掘金⇿InfoQ~51CTO创作者[新人创作榜No.11]~周榜109﹣总榜1024⇿全网访问量40w+????

????本文由 謓泽 原创 发布在51CTOP 如需转载还请通知⚠

????个人主页-​謓泽51Ctop的博客​????

????欢迎各位→点赞???? + 收藏⭐️ + 留言????

????系列专栏-​謓泽51Ctop的分类_51CTO博客​????

✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本????


【C语言】函数的声明和定义

????????????函数的声明和定义 

函数的声明就是告诉编译器我这里是有一个函数的,它的参数和返回类型也要告诉编译器,那么这就够了。这个时候编译器就知道你这个函数已经声明了,就不会再不知道你没有这个函数。因为我们已经告知编译器我们这个函数是实实在在是存在的。所以,编译器就不会报错!

????函数的声明组成

  • 函数的返回值类型,返回值可以是某个 C 的数据类型
  • 函数名,函数名也就是函数的标识符,函数名在程序中必须是唯一的。因为标识符,所以函数名也要遵守表示符的一个命名规程。
  • 参数列表,参数列表可以没有变量也可以有多个变量,在进行函数调用时候,实际参数将被复制到这些变量当中。
  • 分号 ④部分组成其形式如下:
  • 返回值类型    函数名(参数列表)
  • 此处要注意的是:声明的最后要用到分号";"作为语句的结束标志!
  1. 函数的定义就是在创建这个函数!
  2. 函数的声明就是在告知编译器我有这个函数!
  3. 注意:声明只是告诉你有没有这个函数,真正取决于是函数的定义! 

下面的程序为大家用代码举个例子如下所示↓

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
int a = 10;
int b = 20;

Add(a, b);

return 0;
}

void Add(int x, int y)
{
int z = 0;
z = x + y;
printf("ret = %d\n", z);
}

代码编译运行结果:"Add"重定义,不同类型报错!

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void Add(int x, int y);
int main(void)
{
int a = 10;
int b = 20;

Add(a, b);

return 0;
}

void Add(int x, int y)
{
int z = 0;
z = x + y;
printf("ret = %d\n", z);
}

????运行结果↓

ret = 30

从上面代码不同的编译结果我们就可以看出有函数的声明和无函数声明的一个区别!

说明:当然如果你把函数的定义放在主函数前面这个时候我们函数的声明其实都是无所谓的,因为我们的编译器都是从前往后开始的执行的。因为我编译器在前面已经见过了你这个函数是存在的。那么在主函数调用你这个函数自然而然是一点问题都是没有的。

静态库

【C语言】函数的声明和定义

可以实现把某个源文件.c删除就好比上述的sub.c但是只要导入头文件并且声明.h在主函数当中却依旧可以运行程序并且实现sub函数的功能。