社区
C语言
帖子详情
单片机编程C程序中经常使用extern,感觉很麻烦,有什么方法可以避免使用extern,或者说如何减少使用全局变量,有什么技巧?
淹死的大白鲨
2019-03-07 03:35:59
单片机编程C程序中经常使用extern,感觉很麻烦,有什么方法可以避免使用extern,或者说如何减少使用全局变量,有什么技巧?
这是以前写的程序,每次用一个变量都需要外部引用,感觉不是很可靠,并且非常麻烦。
...全文
726
5
打赏
收藏
单片机编程C程序中经常使用extern,感觉很麻烦,有什么方法可以避免使用extern,或者说如何减少使用全局变量,有什么技巧?
单片机编程C程序中经常使用extern,感觉很麻烦,有什么方法可以避免使用extern,或者说如何减少使用全局变量,有什么技巧? 这是以前写的程序,每次用一个变量都需要外部引用,感觉不是很可靠,并且非常麻烦。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
淹死的大白鲨
2019-03-08
打赏
举报
回复
多谢,您第二种的方法之前没有想到过,试了一下,非常实用。谢谢!!
lin5161678
2019-03-07
打赏
举报
回复
写在一个头文件里面 用到了就include
smwhotjay
2019-03-07
打赏
举报
回复
extern c语言 跨模块访问变量必须设置的。。。
单眼皮的根号3
2019-03-07
打赏
举报
回复
单片机C语言中,两个函数共享数据的时候,为了方便编程,一般都要用到全局变量,如果你要减少全局变量的使用,就要用函数返回值或者指针的形式去共享数据,这样的编程会使得逻辑变得复杂,单片机而言,一般都使用全局变量,所以问题应该是怎样去管理这些全局变量。
①一楼提供了一个方法,所有的全局变量定义在一个结构体内,这个结构体专门存放在一个.c文件,以后使用全局变量只需要声明这个结构体即可,而添加全局变量也只需要在结构体内添加,删除的时候只需要在结构体内以及用过的代码上删除,其余地方保持不变
②另外一种方式是把声明都放在一个.h文件中,在用到全局变量的地方#include这个头文件进来,而新添加的时候在.h中声明,定义可以分开在某个.c中,删除这个全局变量的时候,需要把定义和.h中的声明同时删除,这样也是一个快捷的管理方法
sdghchj
2019-03-07
打赏
举报
回复
//把所有变量都放一个结构体中,然后所有过程函数都带这个结构体参数 struct Context { }
51
单片机
编译错误笔记一(ERROR L104: MULTIPLE PUBLIC DEFINITIONS)
1、错误示例 linking... *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: BUSY MODULE: main.obj (MAIN) *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: BUSY MODULE: uart.obj (UART) ...
Keil5 C51开发避坑:手把手教你解决ERROR L104重复定义问题(附
extern
正确用法)
本文详细解析了Keil5 C51开发
中
常见的ERROR L104重复定义问题,并提供了
extern
关键字的正确用法。通过实际案例和最佳实践,帮助开发者理解变量声明与定义的区别,掌握多文件项目
中
的
全局变量
管理
技巧
,
避免
常见的链接错误。
嵌入式开发避坑指南:如何用
extern
解决L6200E重复定义错误(附实例代码)
本文深入剖析嵌入式开发
中
常见的L6200E重复定义错误,阐明其根源在于头文件
中
的变量定义被多个源文件包含。核心解决方案是正确
使用
extern
关键字,遵循“声明在头文件,定义在源文件”的原则,并配合static关键字管理作用域。文章通过实例代码展示了如何构建清晰、健壮的多文件项目结构,从而
避免
链接错误,提升代码质量。
《为了以后更省事,而现在故意找的
麻烦
——嵌入式C语言OOP封装思想 | 分层·函数指针·继承》
嵌入式C语言封装思想演进笔记 本文通过三层"壳子"的递进设计,探讨嵌入式开发
中
硬件抽象的核心逻辑: 基础分层 将硬件操作隔离到单独文件(如light_drv_stm32.c),实现硬件变更时只需替换驱动文件,应用层代码无需修改。 动态接口 引入函数指针结构体(如light_interface_t),允许运行时切换不同硬件实现(STM32/GD32),支持多平台兼容。 继承复用 通过结构体嵌套(如light_base_ops_t派生PWM灯),共享基础操作接口,
避免
功能重复定义,增强扩展性。
C99内联函数原理与工业级实践指南
内联函数是C语言
中
用于
减少
函数调用开销的编译器优化机制,其本质并非强制指令,而是向编译器提出的内联请求。依据C99标准,是否展开取决于函数复杂度、调用上下文及编译器成本模型,涉及分支预测、指令缓存(I-Cache)命
中
率和寄存器分配等底层微架构影响。在嵌入式与高性能计算场景
中
,不当
使用
可能导致代码膨胀、缓存污染甚至链接错误。实际工程
中
需结合perf性能分析、汇编验证与ODR合规性检查,优先保障可维护性与确定性。static inline与
extern
inline的协同机制、GCC/Clang实现差异及内联
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章