一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

介紹一種高效率的c語(yǔ)言狀態(tài)機(jī)

冬至配餃子 ? 來(lái)源:最后一個(gè)bug ? 作者:bug菌 ? 2022-08-12 09:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

/***高效率狀態(tài)機(jī)***/

狀態(tài)機(jī)對(duì)于有一定編程經(jīng)驗(yàn)的程序員一定會(huì)用到,因?yàn)閷?duì)于我們的各種各樣的模塊他們都會(huì)有各種狀態(tài),其他模塊都會(huì)根據(jù)這些狀態(tài)和數(shù)據(jù)進(jìn)行處理;同時(shí)在網(wǎng)絡(luò)編程方面也會(huì)根據(jù)網(wǎng)絡(luò)狀態(tài)和消息類(lèi)型進(jìn)行相應(yīng)處理等等方面狀態(tài)機(jī)的使用是非常廣泛的,我們通常稱(chēng)這種狀態(tài)機(jī)為有限狀態(tài)機(jī)—FSM

在進(jìn)行有限狀態(tài)機(jī)編寫(xiě)之前,我們需要進(jìn)行狀態(tài)的梳理,
最好是能畫(huà)UML圖或者是簡(jiǎn)單的畫(huà)一些狀態(tài)圖,那么我們平時(shí)都是如何實(shí)現(xiàn)這個(gè)狀態(tài)機(jī)框架的呢?

1)用判斷語(yǔ)句進(jìn)行狀態(tài)機(jī)的分支


if(statue == STATUE_1)sStatue1Process();

else if(statue == STATUE_2)sStatue2Process();

else if(statue == STATUE_3)sStatue3Process();

elsesStatue4Process();


上面通過(guò)if/else分支了4種狀態(tài),分別每種狀態(tài)有各自的處理辦法process函數(shù),那么狀態(tài)之間如何轉(zhuǎn)換呢?在我們的狀態(tài)處理函數(shù)里面,會(huì)
通過(guò)處理當(dāng)前狀態(tài)的相關(guān)事務(wù),然后通過(guò)相關(guān)條件改變statue,如statue=STATUE_2,從而下一次進(jìn)入對(duì)應(yīng)的狀態(tài)中!

那么上面我們是通過(guò)分支來(lái)進(jìn)行處理,同樣我們也可以使用switch來(lái)進(jìn)行處理!
至于選擇if/else還是switch,我們之前有個(gè)文章進(jìn)行分析,大家可以前往閱讀,這兩種分支語(yǔ)句對(duì)于不太多的狀態(tài)仍然是首選的,而對(duì)于我們的狀態(tài)較多,那么可能通過(guò)判斷會(huì)浪費(fèi)一些時(shí)間,為了提高效率,我們提出了第二種方法。

2)用函數(shù)指針高效提高狀態(tài)機(jī)效率

參考代碼如下:

pYYBAGL1p5GABeHLAAFYvFCT2hU881.png

poYBAGL1p5iANUklAAEKVJLXQxg843.png

pYYBAGL1p56AbI1MAACoAODWsEc134.png

按照預(yù)期輸出了最終的結(jié)果,該辦法類(lèi)似于用空間換了時(shí)間,把狀態(tài)和處理進(jìn)行了直接綁定,這樣會(huì)使用掉一些內(nèi)存,不過(guò)對(duì)于整個(gè)軟件代碼而言是不值一提的!

優(yōu)化:我們可能對(duì)于狀態(tài)處理還需要傳入一些數(shù)據(jù),我們可以優(yōu)化函數(shù)指針讓其變成含參數(shù)的形式!等等優(yōu)化版本大同小異!(哈哈,上面的代碼手機(jī)打得,風(fēng)格寫(xiě)得不好大家請(qǐng)見(jiàn)諒)


審核編輯:劉清


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141759
  • 狀態(tài)機(jī)
    +關(guān)注

    關(guān)注

    2

    文章

    493

    瀏覽量

    28243
  • fsm
    fsm
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    12979
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    求助,關(guān)于srammaster.cydsn中狀態(tài)機(jī)的問(wèn)題求解

    晚上好。 我目前正在學(xué)習(xí) GPIF II。 查看..EZ-USB FX3 SDK1.3firmwaregpif_examplescyfxsrammastersrammaster.cydsn中的狀態(tài)機(jī),有狀態(tài)START和START1。 這意味著什么?
    發(fā)表于 05-12 06:20

    MDD高效率整流管的工作原理:如何降低導(dǎo)通損耗?

    在高頻、高功率應(yīng)用中,高效率整流管的導(dǎo)通損耗直接影響電路的整體能效和熱管理。MDD作為專(zhuān)業(yè)的二極管制造商,其高效率整流管因低正向壓降(VF)和快速恢復(fù)特性廣泛應(yīng)用于開(kāi)關(guān)電源(SMPS)、PFC電路
    的頭像 發(fā)表于 04-03 10:55 ?459次閱讀
    MDD<b class='flag-5'>高效率</b>整流管的工作原理:如何降低導(dǎo)通損耗?

    高效率整流二極管有什么特點(diǎn)

    。1.低正向壓降高效率整流二極管的個(gè)重要特點(diǎn)是其較低的正向壓降(Vf)。在傳統(tǒng)的硅二極管中,正向壓降通常在0.7V左右,而在高效率整流二極管(如肖特基二極管和快恢復(fù)
    的頭像 發(fā)表于 02-21 11:21 ?576次閱讀
    <b class='flag-5'>高效率</b>整流二極管有什么特點(diǎn)

    大功率直流電源如何提高效率

    大功率直流電源提高效率的方法主要包括以下幾個(gè)方面: 、優(yōu)化電源拓?fù)浣Y(jié)構(gòu) 電源拓?fù)浣Y(jié)構(gòu)是影響電源效率的關(guān)鍵因素之。常見(jiàn)的直流電源拓?fù)浣Y(jié)構(gòu)有線性穩(wěn)壓電源和開(kāi)關(guān)穩(wěn)壓電源兩
    的頭像 發(fā)表于 12-23 10:12 ?779次閱讀

    一種新型高效率的服務(wù)器電源系統(tǒng)

    一種新型高效率的服務(wù)器電源系統(tǒng)
    發(fā)表于 12-19 16:45 ?1次下載

    Simulink中的狀態(tài)機(jī)建模方法 Simulink數(shù)據(jù)可視化與分析功能

    。 1.2 使用狀態(tài)機(jī)圖(Stateflow) Stateflow是Simulink的個(gè)附加產(chǎn)品,專(zhuān)門(mén)用于設(shè)計(jì)和模擬狀態(tài)機(jī)
    的頭像 發(fā)表于 12-12 09:27 ?3007次閱讀

    深入理解C語(yǔ)言:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    在程序設(shè)計(jì)中,我們常常需要重復(fù)執(zhí)行某段代碼。為了提高效率和簡(jiǎn)化代碼,循環(huán)語(yǔ)句應(yīng)運(yùn)而生。C語(yǔ)言作為門(mén)經(jīng)典的編程
    的頭像 發(fā)表于 12-07 01:11 ?635次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    高效率整流二極管經(jīng)典型號(hào)大全 選型不再迷茫

    在實(shí)際應(yīng)用中,整流二極管種類(lèi)很多,可分為普通整流二極管、高效率整流二極管、快恢復(fù)整流二極管、超快恢復(fù)整流二極管等等。常有客戶前來(lái)東沃電子咨詢:貴司生產(chǎn)高效率整流二極管嗎?高效率整流二極管常用型號(hào)有哪些?
    的頭像 發(fā)表于 11-13 17:18 ?1712次閱讀
    <b class='flag-5'>高效率</b>整流二極管經(jīng)典型號(hào)大全 選型不再迷茫

    MCU編程語(yǔ)言和開(kāi)發(fā)環(huán)境介紹

    MCU編程語(yǔ)言 MCU編程語(yǔ)言是用于編寫(xiě)MCU程序的高級(jí)編程語(yǔ)言,它們使得開(kāi)發(fā)者能夠更高效地開(kāi)發(fā)嵌入式應(yīng)用程序。以下是些常用的MCU編程
    的頭像 發(fā)表于 11-01 11:51 ?2197次閱讀

    高效率PA設(shè)計(jì)的雙重挑戰(zhàn)

    效率”在射頻功率放大器(PA)設(shè)計(jì)中占據(jù)舉足輕重的地位。高效率PA設(shè)計(jì)的兩大核心:PA的“Class”設(shè)計(jì)以及功率合成架構(gòu)。然而,在實(shí)際的射頻前端系統(tǒng)中,PA并非孤立存在,而是與整個(gè)系統(tǒng)緊密相連。系統(tǒng)層面的設(shè)計(jì)方案對(duì)PA功耗有著深遠(yuǎn)影響。
    的頭像 發(fā)表于 10-18 15:02 ?1223次閱讀
    <b class='flag-5'>高效率</b>PA設(shè)計(jì)的雙重挑戰(zhàn)

    如何高效率選出高能效的電感?

    高感量的電感來(lái)平滑紋波電流實(shí)現(xiàn)效率最高,即損耗最佳,需要確保在通過(guò)工作電流時(shí),電感器不能磁芯飽和,也不能繞組過(guò)熱。本文介紹了如何評(píng)估電感器的損耗,以及高效率電感器的設(shè)計(jì)與快速選型方法。
    的頭像 發(fā)表于 09-20 12:43 ?731次閱讀
    如何<b class='flag-5'>高效率</b>選出高能效的電感?

    電機(jī)的能效等級(jí)及節(jié)能計(jì)算何為高效率電機(jī)?

    高效率電機(jī)出現(xiàn)在上世紀(jì)70年代第次能源危機(jī)時(shí),它與般電動(dòng)機(jī)相比其損耗下降約20%左右。由于能源供應(yīng)的持續(xù)緊張,近年又出現(xiàn)了所謂超高效率電機(jī),其損耗又比
    的頭像 發(fā)表于 09-05 09:13 ?1434次閱讀

    觸發(fā)器和狀態(tài)機(jī)的關(guān)系是什么

    觸發(fā)器和狀態(tài)機(jī)在數(shù)字電路設(shè)計(jì)中有著緊密的關(guān)系,它們共同構(gòu)成了時(shí)序邏輯電路的基礎(chǔ),用于實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、處理和傳輸。
    的頭像 發(fā)表于 08-12 11:24 ?945次閱讀

    高效率二極管如何識(shí)別判斷

    高效率二極管在在電源管理和電能轉(zhuǎn)換領(lǐng)域,主要特點(diǎn)是具有低正向壓降和快速的開(kāi)關(guān)速度,從而提高電路的整體效率。、高效率二極管的基本特性高效率
    的頭像 發(fā)表于 08-12 09:51 ?943次閱讀
    <b class='flag-5'>高效率</b>二極管如何識(shí)別判斷

    c類(lèi)放大器最高效率是什么

    C類(lèi)放大器是一種無(wú)線電頻率放大器,它在工作時(shí),晶體管的導(dǎo)通時(shí)間小于個(gè)周期的半,因此被稱(chēng)為C類(lèi)放大器。
    的頭像 發(fā)表于 08-01 14:46 ?1003次閱讀