【C语言】函数的声明和定义|静态库

举报
謓泽 发表于 2023/09/28 16:53:57 2023/09/28
【摘要】 【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删除就好比上述的sub.c但是只要导入头文件并且声明.h在主函数当中却依旧可以运行程序并且实现sub函数的功能。 

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。