使用#define声明常量有什么好处?

Sou*_*nta 2 c c++

我看到很多程序#define在开始时使用.为什么我不应该声明一个常量全局变量呢?

Lig*_*ica 9

(这是一个C++的答案.在C语言中,使用宏有一个很大的优势,那就是它们几乎是获得真正常量表达式的唯一方法.)


使用#define声明常量有什么好处?

没有一个.

我看到很多程序#define在开始时使用.

是的,那里有很多不好的代码.其中一些是遗留的,其中一些是由于无能.

为什么我不应该声明一个常量全局变量呢?

你应该.

一个const对象不仅是一成不变的,但有一个类型,是更容易调试,跟踪和诊断,因为它实际上在编译时存在的(并且,重要的是,在调试版本都有一个名字).

此外,如果您遵守单一定义规则,则在更改宏的定义并忘记按字面意思重新编译整个项目时,您不必担心会导致全能的palaver,以及任何依赖的代码那个项目.

并且,是的,具有讽刺意味的是,const对象仍被称为"变量"; 当然,在实践中,它们丝毫不变.