C 常量
常量是值不可改变的量。本章介绍字面量、符号常量、const 与宏常量的区别与用法。
1. 字面量
c
10, 3.14, 'A', "Hello", 0x2A, 0772. 符号常量(宏)
c
#define PI 3.1415926
#define APP_NAME "MyApp"- 预处理阶段替换
- 不进行类型检查,易产生副作用(宏函数尤其要注意括号)
3. const 常量
c
const double PI2 = 3.1415926;- 受类型系统约束,更安全
- 在某些实现中
const默认具有内部链接,可配合extern
4. enum 常量
c
enum Color { RED=1, GREEN=2, BLUE=3 };- 本质为整型常量,利于定义离散取值
5. 宏函数注意
c
#define SQR(x) ((x) * (x))- 勤加括号,防止优先级问题
6. 示例
c
#include <stdio.h>
#define MAX_LEN 256
int main(void) {
const char *name = "Alice";
char buf[MAX_LEN];
printf("Hello %s\n", name);
return 0;
}7. 小结
优先使用 const 与 enum 提供类型安全;宏多用于条件编译、平台差异与编译期常量。