Skip to content

C 常量

常量是值不可改变的量。本章介绍字面量、符号常量、const 与宏常量的区别与用法。

1. 字面量

c
10, 3.14, 'A', "Hello", 0x2A, 077

2. 符号常量(宏)

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. 小结

优先使用 constenum 提供类型安全;宏多用于条件编译、平台差异与编译期常量。

本站内容仅供学习和研究使用。