37、C++ 编程:程序文件、预处理指令与命名空间详解

C++ 编程:程序文件、预处理指令与命名空间详解

在 C++ 编程中,处理多文件程序、使用预处理指令以及合理运用命名空间是非常重要的技能。下面将详细介绍这些方面的知识。

1. 外部名称与常量变量

在多文件程序中,链接器负责建立一个源文件中的函数调用与另一个文件中函数定义之间的连接。函数名默认具有外部链接属性,编译器在编译函数调用时,只需函数原型中的信息即可创建调用,而无需关心函数定义是否在同一文件中。

变量则不同。如果要访问当前翻译单元外部定义的变量,必须使用 extern 关键字声明变量名。例如:

extern double pi;

此声明表明 pi 是在当前块外部定义的名称,类型必须与定义中的类型完全对应,且不能在 extern 声明中指定初始值,因为这只是名称的声明,而非变量的定义。声明变量为 extern 意味着它在另一个翻译单元中定义,编译器会将该变量标记为具有外部链接属性,由链接器建立名称与它所引用变量之间的连接。

对于 const 变量,默认具有内部链接属性,在其他翻译单元中不可用。可通过在定义中使用 extern 关键字来覆盖此默认行为:

extern const double pi {3.14159265};    // 具有外部链接属性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值