当前位置:首页 > > 嵌入式微处理器
[导读]作为嵌入式工程师,写一个效率高效,思路清晰的C语言程序是我们的终极目标。

作为嵌入式工程师,写一个效率高效,思路清晰的C语言程序是我们的终极目标,那么,怎么才能写好这样的程序呢?首先,我们要用C语言的思维方式来进行程序的构架构建;其次,要有良好的C语言算法基础,以此来实现程序的逻辑构架;最后,灵活运用C语言的指针操作。


虽然看起来以上的说法很抽象,给人如坠雾里的感觉,其实就是用C语言进行遇到问题、分析问题和解决问题的过程。那么,下文将给你介绍如何耍这“三板斧”。


嵌入式工程师在编写C语言程序的时候,要针对遇到的问题进行程序构架构建。


比如我们要处理“猴子选大王”的经典问题:一群猴子,手拉手排成一个圆,从任意一只猴子开始从1开始报数,当遇到要排除的数(预先设定)时该猴子退出该圈,从下一只猴子开始继续从1报数,如此反复,最终剩下的猴子便是猴子的大王。那么,这“三板斧”该如何使用呢?


第一板斧,用C语言的思维方式进行程序构架构建


程序分为三大部分:

a、数据获取,为了程序的运行,上面的问题要获得猴子的总数,从那只猴子开始和剔除的个数;

b、数据运算,需要从一堆数据中剔除相应的数据,注意逻辑的正确;

c、提高程序的运行速率,少用循环多用指针。


第二板斧,用C语言进行逻辑实现


a、 数据获取,通过printf和scanf进行参数的获取。



同时注意异常时的处理,比如上面两个if语句就是异常情况的判断,每种异常情况对应不同的返回值,这样便于程序过程的调试和数据的合法性。


b、 



通过该步骤后,head和p(present)都成了一个“猴子圈”的链表。在该链表的构建过程中需要注意一下几点:内存的开辟,此时遵守使用多少开辟多少的原则。


如果一下开辟过多,会引起内存泄露的问题,但是,这个小程序是不会遇到这种问题了。其次是熟悉循环链表的构建方法:链表的尾巴指向链表的头。这个时候有心的话还会联想到双向链表的情况。


c、



找到从第几个位置开始计数。此时,p指向开始的“猴子”。因为采用了链表方法,这个过程只需要关注p指针的next指向即可。


a、 保存初始的“猴子”圆圈参数。



为什么要保留这个呢?首先要控制猴子数目,所以保留了全部的数目。其次用q(qurry)来保留剔除猴子前面的链表,并连接剔除猴子后的链表。这样,完成了循环链表的元素删除。


b、 猴子查数。

猴子查数是整个程序的关键,需要完成以下任务:a、找到开始的“猴子”数;b、删除该“猴子”;c、将删除掉的循环链表首尾连接起来。



通过以上数据运算,可以完成相应链表元素的删除,这或许就是C语言程序的魅力所在。



第三把斧,使用C语言的指针


比如本程序的链表指针的定义,p,s,q。

linklist *head, *p, *s, *q;


我们知道,指针操作不但可以减少数据操作需要的内存,还可以提高程序的运行速度,这在另一方面达到了我们的“第三把斧”的目的。


指针的优势,或许在本程序中表现的不明显,在大量数据和对操作速度要求比较敏感的情况下会很明显,比如Linux内核中,就会有很好的体现。


总之,对于嵌入式工程师,不但能设计出好的硬件电路,如果也能写出好的软件程序就会让我们的生活更加美好。工程师们,耍起这“C语言的三把斧”!


嵌入式ARM

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

本文中,小编将对嵌入式予以介绍,如果你想对它的详细情况有所认识,或者想要增进对嵌入式的了解程度,不妨请看以下内容哦。

关键字: 嵌入式 嵌入式工程师

在这篇文章中,小编将对嵌入式工程师的相关内容和情况加以介绍以帮助大家增进对嵌入式工程师的了解程度,和小编一起来阅读以下内容吧。

关键字: 嵌入式 嵌入式工程师

以下内容中,小编将对嵌入式工程师的相关内容进行着重介绍和阐述,希望本文能帮您增进对嵌入式工程师的了解,和小编一起来看看吧。

关键字: 嵌入式 嵌入式工程师

面试了很多人之后,我开始思考,一个工作1年,工作3年,工作5年,工作10年的嵌入式工程师到底有什么不同,工作年限到底给他们带来了什么。    有时候招聘方并不清楚他们所要求的10年工作经验后面所代表的内涵。在面试了很多求...

关键字: 嵌入式工程师

嵌入式工程师分布在各行各业上面,这其中包括了消费电子、工业电子、汽车电子和军用电子等。从功能上面看,嵌入式本身包括了51、mcu、soc、soc+baseband等很多形式。从开发的结构上看,有些同学专注于底层,比如bo...

关键字: 嵌入式工程师

作为嵌入式工程师,怎么写出效率高、思路清晰的C语言程序呢?要用C语言的思维方式来进行程序的构架构建要有良好的C语言算法基础,以此来实现程序的逻辑构架灵活运用C语言的指针操作    虽然看起来以上的说法很抽象,给人如坠雾里...

关键字: 嵌入式工程师

关注星标公众号,不错过精彩内容来源 |网络作为嵌入式工程师,怎么写出效率高、思路清晰的C语言程序呢?要用C语言的思维方式来进行程序的构架构建要有良好的C语言算法基础,以此来实现程序的逻辑构架灵活运用C语言的指针操作   ...

关键字: 嵌入式工程师

ZC1核心板内置Cortex-A5处理器,集成Cat.1BLE功能,采用AWorksOS嵌入式C语言开发方式,摒弃OpenCPU的复杂开发模式,让每一位嵌入式工程师得心应手,快速开发。ZC1Cat.1核心板基于Corte...

关键字: 嵌入式工程师

中年危机在IT圈是个老生常谈的词了,火哥第一篇文章也给大家分享这个话题,当然火哥不是一个俗套的人,就不去说一些不断学习,提升技能的鸡汤了。我们先追本溯源地发现电子通信,嵌入式工程师潜在的中年危机,下一篇再聊聊一些解决方法...

关键字: 嵌入式工程师 电子 通信

当谈起嵌入式工程师,究竟在谈些什么 拥有足够广阔知识面是前提 坚持学习但不拘泥技术 了解技术的本质走进生活 对于嵌入式这个行业来讲,一般非本专业的了解人并不多,对外人谈起一般人都习以为常的自称码农,但是作为一个真正的嵌入...

关键字: 嵌入式工程师
关闭