99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

1)用判斷語句進行狀態(tài)機的分支


if(statue == STATUE_1)sStatue1Process();

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

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

elsesStatue4Process();


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

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

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

參考代碼如下:

pYYBAGL1p5GABeHLAAFYvFCT2hU881.png

poYBAGL1p5iANUklAAEKVJLXQxg843.png

pYYBAGL1p56AbI1MAACoAODWsEc134.png

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

優(yōu)化:我們可能對于狀態(tài)處理還需要傳入一些數(shù)據(jù),我們可以優(yōu)化函數(shù)指針讓其變成含參數(shù)的形式!等等優(yōu)化版本大同小異?。ü厦娴拇a手機打得,風格寫得不好大家請見諒)


審核編輯:劉清


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

    關注

    180

    文章

    7632

    瀏覽量

    141802
  • 狀態(tài)機
    +關注

    關注

    2

    文章

    493

    瀏覽量

    28254
  • fsm
    fsm
    +關注

    關注

    0

    文章

    35

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    求助,關于srammaster.cydsn中狀態(tài)機的問題求解

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

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

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

    高效率整流二極管有什么特點

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    高效率二極管如何識別判斷

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

    c類放大器最高效率是什么

    C類放大器是一種無線電頻率放大器,它在工作時,晶體管的導通時間小于個周期的半,因此被稱為C類放大器。
    的頭像 發(fā)表于 08-01 14:46 ?1004次閱讀