34-函数的声明和定义

本文讲述了C语言中函数声明与定义的区别,强调了先声明后使用的规则,并通过示例说明了如何在头文件和源文件中组织代码以实现模块化。还讨论了头文件的作用以及为何在不同文件中编写的原因,包括协作和代码保护措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

34-1 函数的声明

1、告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是不是存在,函数声明决定不了。

2、函数的声明一般出现在函数的使用之前。要满足先声明后使用

3、函数的声明一般要放在头文件中的。

34-2 函数的定义

函数的定义是指函数的具体实现,交待函数的功能实现。

34-3 函数声明和定义的具体应用

错误案例:

int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	//加法
	int sum = Add(a, b);
	printf("%d\n", sum);
	return 0;
}

//函数的定义
int Add(int x, int y)
{
	return x + y;
}

报错信息:

 

解释:

编译器从上往下进行,当遇到int sum = Add(a,b)时,还没有遇到对Add的定义

如果一定要把对Add的定义放在前面,我们可以进行函数的声明:

//函数的声明
int Add(int, int);
//int Add(int x, int y);也可以


int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	//加法
	int sum = Add(a, b);
	printf("%d\n", sum);
	return 0;
}

//函数的定义
int Add(int x, int y)
{
	return x + y;
}

运行结果:

进一步完善:

定义一个头文件:

再创建一个源文件:

把函数声明放在Add.h里面:

注:#pragma once是为了防止头文件被重复包含

把函数定义放在Add.c里面:

 

如果想要在test.c里面使用Add函数,直接使用头文件即可:

 

运行结果:

我们把Add.h和Add.c合称为加法模块 

C语言中自带的头文件,用< >

自定义的头文件,用" "

具体原因后续会讲

为什么要这么麻烦地写在不同文件呢?

在初学编程的时候,觉得把所有的代码写到一个文件中最方便。但是,在公司里不是这么写代码的!

1、协作的角度

2、模块化设计,有助于阅读和维护

或许还有UU会疑问,就算要放在不同的文件里,只创建.c文件放函数不就可以了,为什么还要创建.h文件进行声明呢?

1、头文件的包含(#include "Add.h")就是把头文件的内容全部拷贝过来,即把函数声明拷贝过来了,相当于进行了函数声明

2、 当售卖代码时,只向甲方提供静态库(.lib)和.h文件,这样不会泄露你的源码,甲方可以通过.h文件了解函数的意义,调用静态库来运行程序。具体的操作我们后续会讲解。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值