华维单片机入门单片机教程–全局变量

全局变量实际上是嵌入式系统的戈兰高地。

顺便一提。今年还录制了一套比较系统的入门单片机教程。想私信我,可以或者全网同名:华为单片机编程。还有一个在线指南供学生参加电子设计比赛。

冲突最激烈的双方是1.控制工程师2.非嵌入式软件工程师。

第一组工程师做控制。他们的共同理解是“全局编写变量有多方便”。之前采访过一个非常有名的博士/硕士候殿有单片机c语言程序设计,他是从控制实验室出来的,接连有近十人。面试题是用C写PID,后面几篇面试的面试题,我觉得没必要看,因为都是同一种风格。大概是这样的:

代码的特点是所有变量都必须在函数外定义。问他们为什么,答案是“全局变量更容易调试”。

其实对于在学校做自动控制的人来说,最重要的是控制的结果,而不是代码本身。只要代码有效,代码就可以工作。变量名污染、低耦合之类的跟他们不在一个世界。加入公司后,有些人的代码质量会有所提高,但有些人会继续他们以前的习惯。在前公司的代码库中,所有不可读的代码都是由一两个控制工程师编写的,编写后他们会用自己的名字命名函数。

另一派是之前没做嵌入式的软件工程师候殿有单片机c语言程序设计,后来转行。代码的特点是所有静态变量都不能定义在.h文件中,必须写在.c文件中,保证其他文件无法访问。

如果我真的想访问其他文件怎么办?然后为每个变量编写 get/set 函数!问题是当静态变量写入 .c 文件时,编译器无法优化 get/set。因此,大规模变量访问需要几倍于 CPU 时间来执行 get/set 函数调用。在很多情况下,嵌入式项目对硬件的压力很大。90%的CPU利用率不算什么,最高可达97%。(注意这些项目对实时性要求很高,晚一毫秒是不够的,鼠标卡在电脑上也没关系。)然后,为了封装,这么多get/sets被塞进代码里。?

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论