1、定义宏常量,使用const替代#define
#define PI 3.14159
#define MAX_BUFFER_SIZE 1024
使用#define定义的宏常量,是没有类型的,编译器不会对其进行类型检查。使用const可以定义类型安全的常量:
const double PI = 3.14159;
const int MAX_BUFFER_SIZE = 1024;
2、数组维数,无法使用const,需使用#define或枚举:
#define MAX_BUFFER_SIZE 1024 // 继续使用 #define
// 或者使用 enum
enum { MAX_BUFFER_SIZE = 1024 };
char buffer[MAX_BUFFER_SIZE];
3、case标签中不能使用const修饰的变量:
const int OPTION_ONE = 1;
switch (value) {
case OPTION_ONE: // 错误,不能使用 const 变量
// ...
break;
}
// 需要使用 #define 或 enum
#define OPTION_ONE 1
switch (value) {
case OPTION_ONE: // 正确,可以使用 #define
// ...
break;
}