符合上述要求 , 就可以作为常量使用 , 使用这两种手段定义的常量 , 在运行时都无法进行修改 ;
二者都可以 对性能进行优化 :
const 关键字 定义的 常量 , 在编译时分配内存 , 编译器对其进行优化...define 宏定义 定义的 常量 , 在 预编译时也可以进行优化 , 如 内联展开 ;
2、代码示例 - 变量作为数组大小报错
在 C 语言中 , 定义数组 , 如果数组的大小不是常数 , 在 C 语言 和...在 编译阶段 进行处理 , 会提供 类型检查 和 作用域检查 ;
#define 宏定义 是 预处理器 在 预处理阶段 进行处理 , 不会进行 类型检查 和 作用域检查 , 只是进行单纯的 文本替换 ;...在下面的代码中 , 只要调用了 fun1 函数 , 执行了 #define a 10 代码 , 那么在后续不管哪个函数中 , 都可以调用 a 宏定义值 ;
但是在 fun1 函数中 定义了 常量 b..., 代码为 const int b = 20; , 只能在 fun1 函数中调用该常量 , 在其它函数中是无法调用该常量 b 的 ;
代码示例 :
// 包含 C++ 头文件
#include "iostream