c++ - #定义C++中的常量

标签 c++

在各种 C 代码中,我看到常量定义如下:

#define T 100

而在 C++ 示例中,它几乎总是:

const int T = 100;

据我了解,在第一种情况下,预处理器会将 T 的每个实例替换为 100。在第二种情况下,T 实际上存储在内存中。

在 C++ 中#define 常量被认为是不好的编程习惯吗?

最佳答案

Is it considered bad programming practice to #define constants in C++?

是的,因为所有宏(#define 定义的)都在一个命名空间中,并且它们在任何地方都有效。变量,包括 const 限定的变量,可以封装在类和命名空间中。

在 C 中使用宏是因为在 C 中,const 限定的变量实际上不是常量,它只是一个不能修改的变量。 const 限定的变量不能出现在常量表达式中,因此不能用作数组大小等。

在 C++ 中,使用常量表达式初始化的 const 限定对象(如 const int x = 5 * 2;) 一个常量,可以在常量表达式中使用,所以你可以而且应该使用它们。

关于c++ - #定义C++中的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4103086/

相关文章:

c++ - 运行 GTKmm 程序时获取 “gtk_settings_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ 失败”

c++ - 如何使用 C++ 在 opencv 中舍入 float

c++ - ffmpeg 流解码 - 不使用 ffplay 时的人工制品

c++ - 段错误 - 查找列表的根

c++ - 如何在C++中读取格式化文件

c++ - MSVS 2012 Express - Boost - 链接器错误 LNK2019

c++ - 在非 Haswell 处理器上禁用 AVX2 功能

c++ - Shared_ptr 在创建 boost 线程时从未被释放

c++ - 寻找用于计算 IP 地址的算法/类(直方图)

c++ - 为什么i++用在数组中