6.1.3 分离式编译

练习6.9
fact函数的定义位于一个名为fact.cc的文件中,它的声明位于名为Chapter6.h的头文件中。另外,我们在名为factMain.cc的文件中创建main函数,main函数将调用fact函数。要生成可执行文件,必须告诉编译器我们用到的代码在哪里。
fact.cpp

//函数的定义
#include "Chapter6.h"

int fact(int val)
{
	int rec = 1;
	while (val > 1) {
		rec *= val--;
	}
	return rec;
}

double absolute(double val)
{
	double rec = 1;
	if (val >= 0)
		rec = val;
	else
		rec = -val;
	return rec;
}



factMain.cpp

#include "Chapter6.h"

int main() {
	int i = 0;
	cin >> i;
	cout << fact(i) << endl;
	cout << absolute(i) << endl;
}

可以成功调用函数!
在这里插入图片描述

解释:
factMain.cpp文件中创建main函数,main函数将调用fact函数。

为了生成可执行文件,把2个源文件(fact.cpp和factMain.cpp)编译成后缀为.o(UNIX)的文件。

接下来编译器把这2个对象文件链接在一起形成可执行文件。

p.s 在源文件中声明函数,就可以正常编译为.o。链接的时候才会去绑定函数的定义。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值