C语言学习之模块化编程

我们在编写程序的时候,总不能将所有的程序放在一个源文件中,这样也不便于团队开发和维护。这就需要将程序有序的组织在不同的文件中,头文件中只是程序的接口部分,而在源文件中负责具体实现,如果其他源文件中有需要调用该源文件中的某个函数,只需要包含头文件即可。以欧几里德算法计算两个数的最大公约数为例:

gcd函数的实现在euclid.c中

/* The gcd() function */

int gcd(int a, int b)

{

    while (b) {

        int temp = b;

        b = a % b;

        a = temp;

    }

    return a;

}

对于扩展欧几里德算法ext_euclid()同样在euclid.c中实现

那么来看euclid.h头文件该怎么写

/* ensure include only once */

#ifndef __EUCLID_H__

#define __EUCLID_H__


/* global variables (decared in euclid.c) */

extern int x, y;


/* compute gcd */

int gcd(int a, int b);


/* compute g = gcd(a, b) and solve ax + by = g */

int ext_euclid(int a, int b);

#endif

前面的ifndef和define是头文件中常见的写法,是为了防止重复包含该头文件。

extern关键字表示引用的其它地方定义的变量,这两个变量假设定义在euclid.c中。

如果我们要使用这两个算法,只需要使用包含euclid.h头文件即可。

#include "euclid.h"

同时我们还可以访问euclid.c中定义的整型变量x和y。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值