当前位置: 首页 > news >正文

c语言完美演绎9-5

/* 范例:9-5 */

#include "file_a.cpp"

int b1; /* 全局自动初值0 */

void pp(void)

{

extern int a;

extern int c;

int b=3;

extern int varb_file_b; /* 定义于file_b,于file_a有include */

printf("a=%d varb_file_b=%d\n",a,varb_file_b);

{

extern int b1; /* 直接找文件全局 */

extern int b; /* 定义于file_a.cpp中已被展开 */

printf("b1=%d b=%d\n",b1,b);

{

extern int c;

::b1++; /* 全局b1=b1+1 (C++的运算符) */

/* ::c++; */ /* error! 变量c 未定义 */

printf("c=%d b1=%d\n",c,b1);

}

}

printf("重新声明为extern的c=%d\n",++c);

}

/* int a=1; */ /* error! 造成重复定义(已在file_a.cpp中定义过) */

int c=789;

int main(void)

{

extern int a; /* 重新声明file_a.cpp内变量a */

a++;

extern int a; /* 即使同一生命范围,也可以重新声明 */

static int b=3;

printf("a=%d b=%d\n",a,b); /* 输出为外部文件的变量a */

pp();

{

int a=33;

printf("%d\n",a); /* 局部a产生屏蔽效应,此时看不到外部变量a */

{

static int b; /* b=0 */

extern int a;

a++; /* a 定义于file_a.cpp */

printf("%d %d\n",a,b);

}

}

printf("未重新声明为extern的c=%d\n",++c);

getchar();

return 0;

}

程序执行结果:

a=6 b=3

a=6 varb_file_b=123

b1=0 b=10

c=789 b1=1

有重新声明为extern的c=790

33

7 0

未重新声明为extern的c=791

http://www.jsqmd.com/news/710528/

相关文章:

  • 【RISC-V国产驱动适配黄金法则】:20年嵌入式老兵亲授C语言层移植避坑指南(含3大厂商芯片实测数据)
  • 金融NLP实战:基于FinSight构建智能舆情监控系统
  • PvZ Toolkit:让经典游戏焕发新生的开源修改工具
  • Boris开发者指南:如何贡献代码和参与社区建设
  • 基于大语言模型的多智能体商业谈判系统设计与实践
  • CGPT框架:基于聚类的表格检索技术突破
  • 3分钟彻底清理Windows系统:Win11Debloat一键优化终极指南
  • 别再复制粘贴了!用ECharts 5和Vue 3从零画一张可交互的中国热力地图(附完整项目代码)
  • 在 SAP Gateway 的 $filter 里支持 toupper 和 tolower 的一条实战路线
  • Sunshine游戏串流完全指南:从零开始搭建自托管游戏服务器
  • Qtui文件界面模块化设计以及开发qss样式表文件
  • 【工业自动化底层开发必修课】:用纯C实现PLCopen MC Function Blocks,支持ISO 13849-1 SIL2认证的3个关键设计模式
  • P4590 [TJOI2018] 游园会 - Link
  • ICO图标批量生成工具:参数配置与场景实践
  • Preact并发模式:异步渲染的先进特性终极指南
  • 基于Docker Compose部署Ollama本地大语言模型全栈方案
  • 深度定制你的简历:React Ultimate Resume配色方案与个性化设置教程
  • 时间序列预测实战:从特征工程到XGBoost模型构建
  • 拍照式蓝光三维扫描仪如何实现汽车灯具全尺寸高效检测?
  • 终极指南:如何用AwesomeTTS为Anki卡片添加智能语音功能
  • Awesome Codex Skills中的开发者成长分析:从聊天历史中发现学习机会
  • 1000+ JavaScript面试题:从基础到进阶的终极准备指南
  • 马尔可夫状态在LLM训练中的优化与应用
  • Android截屏限制终极解决方案:Enable Screenshot模块深度技术解析与实战指南
  • 220V 交流电的 “通断” 状态检测电路
  • 基于Whisper的语音转写与句子挖掘技术实践
  • Bitalostored源码解析:从命令行启动到核心组件初始化
  • linux shell操作- 01 基础必备
  • 从GEO数据到发表级图表:一个完整的炎症性肠病(UC)差异分析实战,含logFC手动计算与可视化
  • 告别游戏崩溃:AML启动器打造XCOM 2模组管理新体验