C编程笔录(一)1.0: 在C编程中,函数的声明为什么都习惯的写在头文件中,然后在需要调用的地方使用#include来包含?

问题:在C编程中,函数的声明为什么都习惯的写在头文件中,然后在需要调用的地方使用#include来包含?

带着这个问题,我创建了三个.c文件,分别命名a.c、b.c和c.c,并进行如下编程:

a.c文件:

int add(int a, int b)

{

 return a + b;

}

b.c文件:

#include <stdio.h>

int add(int a, int b);

void print_sum(int a, int b)

{

 printf("test two, sum=%d", add(a, b));

}

c.c文件:

#include <stdio.h>

int add(int a, int b);

void print_sum(int a, int b);

void main()

{

 printf("test one, sum=%d", add(99 + 88));

 print_sum(100, 200);

while(1);

}

从代码看,因为需求,int add(int a, int b);函数声明在b.c和c.c文件中都拷贝了一份,如果该函数的函数名、返回值或者形参后期需要修改,那么这时需要在a.c、b.c和c.c文件内都进行修改,如果拷贝的份数越多,那么后期代码修改同步时的维护工作量就越大。

OK,回到问题:在C编程中,函数的声明为什么都习惯的写在头文件中,然后在需要调用的地方使用#include来包含?

上面的例子代码中并没有将int add(int a, int b);函数的声明写在在头文件中,所以导致了“有多少处函数声明拷贝,后期函数声明修改就需要同步多少处代码”问题,那么下面改成将函数的声明写在头文件中,使用#include的方式来包含头文件:

再创建两个头文件,分别为a.h和b.h,并且进行如下编程:

a.h文件:

#ifndef __A_H__

#define __A_H__

int add(int, int);

#endif

b.h文件:

#ifndef __B_H__

#define __B_H__

#include <stdio.h>

#include "a.h"

void print_sum(int a, int b);

#endif

然后分别修改b.c和c.c文件如下:

b.c文件:

#include "b.h"

void print_sum(int a, int b)

{

 printf("test two, sum=%d", add(a, b));

}

c.c文件:

#include "b.h"

void main()

{

 printf("test one, sum=%d", add(99 + 88));

 print_sum(100, 200);

while(1);

}

修改后的程序运行结果和修改前的一样,分析修改前后代码发现,将函数声明编写在一个头文件中,如果后期函数声明需要修改,那么只需要修改一个头文件里的函数声明即可。

总结问题答案:

函数的声明都习惯的编写在头文件中,然后在需要调用的地方使用#include包含可以避免函数的声明多处拷贝而导致的后期维护难问题。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值