在各种 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/