函数的声明和定义

目录

函数声明 

函数声明格式

函数声明的作用: 

代码示例

头文件中的函数声明

函数定义

代码示例

代码的模块化


函数声明 

在C语言中,我们知道,对于变量,需要先声明再使用;对于函数,我们也需要声明再使用。

函数声明格式

int add(int x,int y);//一定不要忘记带;

 因为编译器是从上往下扫描执行代码的,因此函数声明需要放在该函数被调用之前,目的是告诉编译器有这么一个函数。虽然我这里对函数做了一个声明,告诉编译器有这么一个函数,但是是否定义(实现)该函数,或者是后面是否调用该函数,也不一定需要。

函数声明的作用: 

  • 告诉编译器有一个函数叫什么,参数是什么,返回类型是什么。但是具体是否存在,函数声明决定不了。
  • 函数的声明一般出现在函数的使用之前,要满足先声明后使用。
  • 函数的声明一般要放在头文件中的。

代码示例

#include<stdio.h>

//声明加法函数
int add(int a, int b);

int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int ret=add(a, b);//ret接收函数返回值
	printf("%d\n",ret);
	return 0;
}
//实现加法函数
int add(int a, int b)
{
	return a + b;
}

 这里如果不加函数声明,编译器就识别不了add函数,程序无法运行。

头文件中的函数声明

另外,函数的代码一般要放在头文件中。

例如:我们实现代码的模块化时,对于自己写的函数,可以将函数的声明放在头文件中

函数定义

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

代码示例

#include<stdio.h>

//加法函数
int add(int a, int b)
{
	return a + b;
}

int main()
{
	int a = 0;
	int b = 0;
	scanf("%d %d", &a, &b);
	int ret=add(a, b);//ret接收函数返回值
	printf("%d\n",ret);
	return 0;
}

 有朋友可能就有疑惑了,函数的声明不是规定了函数需要先声明再使用吗?你这里没有声明,为什么代码能运行呢?编译器是从上往下扫描执行代码的,这里编译器先是扫描到add函数,所以编译器就知道这里有这么一个函数,然后扫描main函数,main函数是程序执行的入口,因此执行main函数,创建a,b变量,读取变量a、b之后,来到调用add函数这里,因为刚才编译器从上往下扫描时已经知道有add函数了,所以这里就会进入add函数执行代码,直到(最后执行完代码或者)碰到return跳出函数,回到主函数,printf打印,return 0结束程序。

因此函数定义是一种特殊的函数声明。通常我们一般直接把函数定义放前面,而不会写函数的声明。但是这里要特别注意的是,如果不使用函数声明,函数的定义就一定要放在该函数被调用之前。

代码的模块化

现在写的代码体量小,但是一旦我们遇到代码体量比较大时,我们就应该采用模块化的代码书写形式。那么什么是代码的模块化呢?例如:我们要写一个计算机,计算器有加分、减法、乘法、除法......往往是多个程序员来完成,不可能说多个程序员一起在main函数中写代码,那么这个时候就需要实现代码的模块化,将代码分成多个模块,例如这里的计算器就可以分成加法、减法、乘法、除法......多个模块

 这里我以加法模块详细举例:

 这里要注意的是,<>包裹的是标准库实现,""包裹自己写的函数的头文件

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值