作用域
作用域决定名字在哪些地方可见。像房间物品:出了房间就找不到。
1. 完整例子
| 1 | int g = 100; // 全局:整个文件可见 |
| 2 | |
| 3 | int main(void) { |
| 4 | int x = 1; // 局部 |
| 5 | if (x > 0) { |
| 6 | int y = 2; // 更内层块 |
| 7 | printf("%d %d %d\n", g, x, y); |
| 8 | } |
| 9 | /* printf("%d\n", y); // 错误:y 不可见 */ |
| 10 | return 0; |
| 11 | } |
2. 概念图
全局 g 在最外层房间;x 在 main 房间;y 在 if 的小隔间。离开小隔间,y 就不存在了。
3. 工程建议
- 优先局部变量,减少全局
- 必须共享时,明确谁读谁写
- 嵌入式全局状态过多会导致难以测试与隐藏耦合