// 全局变量 - 程序启动时创建intglobalCounter = 0; // 存储在数据段staticintstaticGlobal = 100; // 静态全局变量voidprocessOrder(int orderId) {// 局部变量 - 函数调用时创建intlocalOrderId = orderId; // 存储在栈上staticintstaticLocal = 0; // 静态局部变量localOrderId++; // 修改局部变量staticLocal++; // 修改静态局部变量globalCounter++; // 修改全局变量printf("订单处理 - 本地订单ID: %d\n", localOrderId);printf("订单处理 - 静态局部变量: %d\n", staticLocal);printf("订单处理 - 全局计数器: %d\n", globalCounter);// 函数结束,localOrderId销毁,staticLocal继续存在}intmain() {printf("程序启动,全局变量已初始化:\n");printf("全局计数器初始值: %d\n", globalCounter);printf("静态全局变量: %d\n\n", staticGlobal);// 多次调用函数,观察变量生命周期差异processOrder(1001);processOrder(1002);processOrder(1003);printf("\n程序结束,全局变量即将销毁\n");return0;}程序启动,全局变量已初始化:
全局计数器初始值: 0
静态全局变量: 100
订单处理 - 本地订单ID: 1002 (每次都是新变量)
订单处理 - 静态局部变量: 1 → 2 → 3 (持续累加)
订单处理 - 全局计数器: 1 → 2 → 3 (持续累加)
观察:局部变量localOrderId每次调用都重新创建;静态局部变量staticLocal和全局变量globalCounter在整个程序生命周期中持续存在并累加
记住,最好的代码不是最复杂的代码,而是最简单、最清晰、最容易理解的代码。全局与程序同寿,局部随函数调用创建/销毁。遵循“能局部不全局”原则,减少耦合风险
---
</stdio.h>
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!