C++学习笔记总结练习:多文件编程的实例

本文讲述了如何通过条件编译控制头文件包含避免预处理阶段的重复,以及使用extern管理全局变量防止链接阶段的多次定义。还介绍了const常量的作用,以减少编译时的冲突。

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

a.h

a.cpp

b.h//只应该包含声明,而不应包含定义。变量的声明、函数的声明。

b.cpp

说明——解决multiple definition的问题。

使用条件编译

  • 使用条件编译控制被引入的文件,防止被多次编译。条件编译解决的是,预处理阶段,某一个文件,多次包含同一个文件。例如,b包含a,c包含a,c又包含b;#include的预处理阶段,c包含了两段a的代码,那么编译过程会出现include的错误。所以在所有的头文件中,应当加上条件编译,在给别人使用过程中,防止被直接或间接包含多次。

使用extern

  • 使用extern对全局变量进行控制。extern解决的是,链接阶段,多个文件包含了同一文件,结果全局变量或函数多次定义的问题。使得头文件中的变量变为声明,在include过程中,被声明了多次。防止多次包含同一个全局变量起冲突。前提是这个模块会被外部使用。如果不可能被外部使用,则不需要使用extern声明。

使用const

  • 使用const定义的常量。旨在文件中内有效,编译器在编译过程中,把用到该常量的地方都替换成了对应的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onnx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值