重学C++(1)

本文详细介绍了C++中的extern关键字使用方法、const对象特性、引用定义与初始化规则及typedef的作用。此外还探讨了头文件的最佳实践和预处理器的工作原理。

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

extern关键字声明变量,变量可以被声明多次,但只能被定义一次。一个文件拥有一个变量的定义,使用该变量的其他文件在使用前要进行extern声明。

const对象默认为文件的局部变量。

引用定义的同时必须初始化。当引用初始化后,只要该引用存在,它就保持绑定到初始化时指向的对象。不可能将引用绑定到另一个对象上。

const引用是指向const对象的引用。const引用可以绑定到与该引用类型不同的非const对象,而非const引用只能绑定与该引用同类型的对象 。

typedef datatype identifier

使用typedef的目的:

1)隐藏特定类型的实现

2)简化复杂的类型定义

3)允许一种类型用作多个目的,同时使得每次使用该类型目的明确

头文件内容:

  头文件本身不参加编译,但是预处理器会将头文件的内容复制到 多个源文件中,在多个源文件中进行编译,因此头文件不应该含有变量和函数的定义,但是头文件中可以定义类、值在编译时就已经知道的const对象和inline函数,这些实体可在多个源文件中定义,只要每个源文件定义相同。

  C++中任何变量都只能定义一次。定义会分配存储空间,而所有对该变量的使用都会关联到同意空间。因为const对象默认定义为它所在文件的局部变量,因此将用常量表达式初始化的const变量放在头文件,每个包含该头文件的源文件都有了自己的const变量,其名称和值相同。如果const不是用常量表达式初始化的,那就不应该放在头文件中。

预处理器:

预处理器是在源码编译之前按照预处理指令对源码进行处理的过程。预处理指令以  ‘#’开头。

1)#include

#include接受两种形式

#include<standard_header>

#include "my_file.h"     通常和源文件放在同一路径

2)条件编译:#if,#ifndef等

3)宏替换:  #define    宏名    标识符

4)其他预处理指令

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

转载于:https://www.cnblogs.com/catpainter/p/8400525.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值