代码规范:常量规则定义

简介: 使用枚举:来初始化类中的恒定常量- 一般可用来在类中记录函数的返回值类型之类的内容。

常量是一种标识符,它的值在运行期间恒定不变。C 语言用 #define 来定义常量(称为宏常量)。C++ 语言除了 #define 外还可以用 const 来定义常量(称为 const 常量)。


在函数中尽量的避免直接出现数值,特别是大量的出现数值

对于一些公用的常量,包括不限于整形,长整型,双精度整形,字符串尽量使用宏定义。

5.2 const 与 #definde的比较


C++ 语言可以用 const 来定义常量,也可以用 #define 来定义常量。但是前者比后者有更多的优点:


(1) const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应)。


(2) 有些集成化的调试工具可以对 const 常量进行调试,但是不能对宏常量进行调试


补充:但如果是一些类型的再封装,或者单纯一些数值的话,建议使用宏常量,这样可以在代码中更清晰的表明功能含义。


5.3 常量定义规则


【规则 5-3-1】需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。为便于管理,可以把不同模块的常量集中存放在一个公共的头文件中。


【规则 5-3-2】如果某一常量与其它常量密切相关,应在定义中包含这种关系,而不应给出一些孤立的值


5.4 类中的常量


有时我们希望某些常量只在类中有效。由于#define 定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用 const 修饰数据成员来实现。const 数据成员的确是存在的,但其含义却不是我们所期望的。const 数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其 const 数据成员的值可以不同。


不能在类声明中初始化 const 数据成员。以下用法是错误的,因为类的对象未被创建时,编译器不知道 SIZE 的值是什么。


使用枚举:来初始化类中的恒定常量

- 一般可用来在类中记录函数的返回值类型之类的内容。



----------------

[服务器高级架构体系:https://xxetb.xet.tech/s/4DEnTI

目录
相关文章
|
6月前
|
Java Spring
使用枚举定义常量更好点儿
使用枚举定义常量更好点儿
|
6月前
|
安全 编译器 C++
【C/C++ 类型转换规则】一文了解C/C++ 中的类型转换规则,帮助你更好的编程
【C/C++ 类型转换规则】一文了解C/C++ 中的类型转换规则,帮助你更好的编程
80 0
|
6月前
|
IDE 开发工具 C++
C++变量命名规则
C++变量命名规则
69 0
|
6月前
|
程序员 编译器 C#
C#变量命名规则
C#变量命名规则
60 0
|
12月前
使用 clangd 检查代码命名规范
使用 clangd 检查代码命名规范
|
6月前
|
存储 编译器 C语言
C 语言:类型转换与常量的细致理解
有时,您必须将一种数据类型的值转换为另一种类型。这称为类型转换
146 0
|
安全 Unix vr&ar
一文刨析C/C++全局常量的定义
一文刨析C/C++全局常量的定义
标识符(含义、组成、定义规则、命名规范)
标识符 标识符含义 ​ 大家第一次见到标识符这个词的时候可能会有点陌生,其实标识符就是我们编程的时候使用的“名字“ , 给类、接口、方法、变量、常量名,包名等起名字的字符序列
499 0
|
前端开发 JavaScript 开发者
前端技术-Es6 语法-Let 定义变量和常量 | 学习笔记
简介:快速学习前端技术-Es6 语法-Let 定义变量和常量
141 0
|
C++
C++常量定义的两种方式
# C++常量 作用:用于记录程序中不可更改的数据 C++常量定义的两种方式 1.#define 宏常量:#define 常量名 常量值 ​ 通常在文件上方定义,表示一个常量 2. const修饰的变量:const 数据类型 常量名 = 常量值 ​ 通常在变量定义前加关键字const,修饰该变量为常量,不可修改 示例:
218 0