C++常量
来源:互联网 发布:室内定位常用算法 编辑:程序博客网 时间:2024/06/07 02:28
在C语言中,常量一般是通过预处理器建立宏来进行文本替代的。如下面代码:
#define BUFSIZE 100
这中间没有类型检查功能,而且替代是发生在编译阶段,编译器通过把程序里的所有BUFSIZE来用100替代,并且在这期间,它不占用存储空间。在C++中,完全可以用const取代#define。
C++中const默认为内部连接,意思是const仅在const被定义的文件里才是可见的,不能被其他的编译单元看到。当定义一个const时,必须赋一个值给它。除非用了extern做出了清楚说明。通常C++编译器并不为const创建存储空间,在这种情况下,const的作用和#define是一样的。但是如果有几个不同的编译单元都要引用它,那么编译器就会给它分配存储空间。
const可以用于集合,在这种情况下编译器必须为const分配内存。此时的const意味着“不能改变的一块存储空间”。如下面代码:
C++中的const默认为内部连接,所以不能在一个文件中定义一个const,而在另外一个文件中又把它作为extern来引用。为了使const成为外部连接以便让另外一个文件可以对它引用,必须明确把它定义为extern,像下面这样:
extern const int x = 1;
在这种情况下,我们强迫给它分配内存(编译器在这里依然可以选择常量折叠),如果要在另外的文件中使用这个常量x,就在该文件中进行声明,如下
extern const int x;
这句代表x在别处进行了定义。初始化把定义和声明区分开。
- c++-->常量
- C常量
- 【c++】常量
- C常量
- c++(常量)
- C 常量
- 【C#】常量
- C++/C 常量
- C++/C 常量
- C++/C常量
- C++/C 常量
- c++/c常量
- [c++]文字常量
- C/C++常量转换
- c语言常量
- C/C++ 常量--林锐
- c 常量 const
- c中的常量
- jrtplib介绍
- “你可以去当程序员了……”
- 程序员不成熟的若干个特征
- nxp UBoot 网络内核,网络文件系统实例
- ffmpeg 转换语音(部分参考)
- C++常量
- 模拟退火(Simulated Annealing)算法 PO J1379 2420
- 图邻接表C语言实现 拓扑排序
- sql server2005变成单个用户后不能访问,设置成多个用户的办法
- 重建Temp表空间
- xp系统, ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限
- 网站开发人员应该知道的61件事
- 音视频开发录制功能 3GP格式的开发
- ContextMenuStrip 的用法(初学者)