C++ 中,#define 和 const 关键字有什么差别?
#define 指令是预处理指令;即预处理程序在编译程序看到它之前,用宏体的各个部分替换这些宏。
const 变量声明在语言中声明了一个真正的变量,可将其当作一个真实的变量使用:获取其地址、四处传递、强制转换为其他类型、转换等。
如果没有编译程序优化,在不同的情况下,宏定义和 const 变量都对应着内存分配的隐含成本。但是,使用适当的优化措施后,它们几乎是一样的。此外,预处理程序宏没有任何作用域,而 const 值是有作用域的。
广告