在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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ǔ)言的單鏈表應(yīng)用

汽車(chē)電子技術(shù) ? 來(lái)源:玩轉(zhuǎn)單片機(jī) ? 作者: noah ? 2023-02-20 15:03 ? 次閱讀

最近在看一些開(kāi)源項(xiàng)目,大佬的思路還是很值得去學(xué)習(xí),今天就簡(jiǎn)單介紹一下單鏈表的應(yīng)用,配合回調(diào)函數(shù)可以玩出新花樣,廢話不多說(shuō)直接看代碼!

| 頭文件

#include "stdio.h"
#include "stdint.h"


typedef struct sensor
{
    uint8_t flag;
    void (*callback)(void);
    struct sensor* next;
}sensor_t;


extern sensor_t sensor1;
extern sensor_t sensor2;
extern sensor_t sensor3;


void sensor1_callback(void);
void sensor2_callback(void);
void sensor3_callback(void);


void sensor_init(sensor_t* handle, void(*callback)(void));
void sensor_start(sensor_t* handle);
void sensor_handle(void);

| 源碼

// 鏈表頭指針
static sensor_t* head_handle = NULL;


// 創(chuàng)建對(duì)象
sensor_t sensor1;
sensor_t sensor2;
sensor_t sensor3;


// 回調(diào)函數(shù)
void sensor1_callback(void)
{
    printf("sensor1!\\r\\n");
}


void sensor2_callback(void)
{
    printf("sensor2!\\r\\n");
}


void sensor3_callback(void)
{
    printf("sensor3!\\r\\n");
}


// 傳感器初始化
void sensor_init(sensor_t* handle, void(*callback)(void))
{
  handle->callback = callback;
  handle->flag = 0x00;
  sensor_start(handle);
}


// 傳感器開(kāi)始(往鏈表添加節(jié)點(diǎn))
void sensor_start(sensor_t* handle)
{
  sensor_t* target = head_handle;
  if(head_handle == NULL)
  {
    /* 鏈表為空 */
    head_handle = handle;
    handle->next = NULL;
  }
  else
  {
    /* 鏈表中存在節(jié)點(diǎn),遍歷找最后一個(gè)節(jié)點(diǎn) */
    while(target->next != NULL)
    {
      /* 去掉重復(fù)節(jié)點(diǎn) */
      if(target == handle){
        break;
      }
      target = target->next;
    }
    target->next = handle;
    handle->next = NULL;
  }
}


// 傳感器處理(遍歷鏈表)
void sensor_handle(void)
{
  sensor_t* target = head_handle;
  while(target != NULL)
  {
    target->callback();
    target = target->next;
  }
}

| 運(yùn)用

int main()
{
    sensor_init(&sensor1,sensor1_callback);
    sensor_init(&sensor2,sensor2_callback);
    sensor_init(&sensor3,sensor3_callback);
    sensor_handle();
    while (1)
    {
        /* code */
    }
}

這個(gè)寫(xiě)法是理論上只會(huì)受限于內(nèi)存大小,理想狀態(tài)下可以無(wú)限創(chuàng)建對(duì)象,通過(guò)綁定回調(diào)函數(shù),能在一定程度上解決調(diào)用耦合的問(wèn)題!

--END--

收錄于合集 **#**c語(yǔ)言

2個(gè)

上一篇C語(yǔ)言|void 指針

聲明:本文內(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)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4891

    瀏覽量

    70301
  • 回調(diào)函數(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    88

    瀏覽量

    11831
  • 單鏈表
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    6990
收藏 人收藏

    評(píng)論

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

    C語(yǔ)言-鏈表(單向鏈表、雙向鏈表)

    在前面章節(jié)已經(jīng)學(xué)習(xí)了數(shù)組的使用,數(shù)組的空間是連續(xù)空間,數(shù)組的大小恒定的,在很多動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)的應(yīng)用場(chǎng)景下,使用不方便;而這篇文章介紹的鏈表結(jié)構(gòu),支持動(dòng)態(tài)增加節(jié)點(diǎn),釋放節(jié)點(diǎn),比較適合存儲(chǔ)動(dòng)態(tài)數(shù)據(jù)的應(yīng)用場(chǎng)景,而且鏈表的空間是存儲(chǔ)在堆上面的,可以動(dòng)態(tài)分配,釋放
    的頭像 發(fā)表于 09-09 11:30 ?1939次閱讀

    源碼|學(xué)生信息管理系統(tǒng)(C語(yǔ)言鏈表實(shí)現(xiàn))

    源碼|學(xué)生信息管理系統(tǒng)(C語(yǔ)言鏈表實(shí)現(xiàn))
    發(fā)表于 11-03 10:24 ?616次閱讀

    C語(yǔ)言實(shí)現(xiàn)靜態(tài)鏈表的建立

    在這么卷的時(shí)代,我覺(jué)得硬件工程師還是 要掌握基本的C語(yǔ)言編寫(xiě)能力,鏈表在學(xué)生階段是一個(gè)比較難的知識(shí)點(diǎn),可能有些同學(xué)上完一個(gè)大學(xué)都不會(huì)鏈表的編寫(xiě),但是在未來(lái)工作中,
    發(fā)表于 01-13 15:08 ?914次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>實(shí)現(xiàn)靜態(tài)<b class='flag-5'>鏈表</b>的建立

    C語(yǔ)言鏈表的應(yīng)用

    最近在看一些開(kāi)源項(xiàng)目,大佬的思路還是很值得去學(xué)習(xí),今天就簡(jiǎn)單介紹一下鏈表的應(yīng)用,配合回調(diào)函數(shù)可以玩出新花樣,廢話不多說(shuō)直接看代碼!
    發(fā)表于 02-17 09:22 ?522次閱讀

    C語(yǔ)言算法題:反轉(zhuǎn)一個(gè)單向鏈表

    鏈表是編程學(xué)習(xí)的一個(gè)難點(diǎn)。其實(shí),在C語(yǔ)言編程以及單片機(jī)裸機(jī)開(kāi)發(fā)中,鏈表運(yùn)用并不多。但是如果想提升嵌入式技能水平或收入水平,可以考慮深入嵌入式系統(tǒng)層面(如參與操作系統(tǒng)設(shè)計(jì)、深入學(xué)習(xí)新的操
    發(fā)表于 06-21 11:07 ?1322次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>算法題:反轉(zhuǎn)一個(gè)單向<b class='flag-5'>鏈表</b>

    C語(yǔ)言鏈表知識(shí)點(diǎn)(2)

    C語(yǔ)言鏈表知識(shí)點(diǎn)(2)
    發(fā)表于 08-22 10:38 ?422次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>鏈表</b>知識(shí)點(diǎn)(2)

    C語(yǔ)言鏈表

    C語(yǔ)言鏈表,,,
    發(fā)表于 11-07 17:19

    C語(yǔ)言玩轉(zhuǎn)鏈表

    C語(yǔ)言是必學(xué)的一個(gè)課程,不管你是單片機(jī)還是嵌入式物聯(lián)網(wǎng),都是基礎(chǔ),所以還是要好好學(xué)習(xí)的今天推薦的資料是關(guān)于C語(yǔ)言鏈表的資料我自己看了一下主要
    發(fā)表于 11-13 13:50

    怎么實(shí)現(xiàn)c語(yǔ)言循環(huán)鏈表

    怎么實(shí)現(xiàn)c語(yǔ)言循環(huán)鏈表
    發(fā)表于 10-19 06:07

    C語(yǔ)言實(shí)現(xiàn)鏈表舉例

    所謂鏈表,就是用一組任意的存儲(chǔ)單元存儲(chǔ)線性表元素的一種數(shù)據(jù)結(jié)構(gòu)。鏈表又分為鏈表、雙向鏈表和循環(huán)鏈表
    發(fā)表于 07-11 16:40 ?87次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>實(shí)現(xiàn)<b class='flag-5'>單</b><b class='flag-5'>鏈表</b>舉例

    C加加建立動(dòng)態(tài)鏈表

    C加加建立動(dòng)態(tài)鏈表利用C語(yǔ)言c++編寫(xiě)程序
    發(fā)表于 11-19 13:43 ?0次下載

    C語(yǔ)言鏈表的模擬學(xué)生成績(jī)管理系統(tǒng)

    鏈表編寫(xiě)的模擬學(xué)生成績(jī)管理系統(tǒng),索要進(jìn)行的項(xiàng)目可以再菜單中進(jìn)行選擇
    發(fā)表于 11-26 15:46 ?12次下載

    C語(yǔ)言鏈表相關(guān)資料下載

    C語(yǔ)言鏈表相關(guān)資料
    發(fā)表于 03-08 10:47 ?5次下載

    C語(yǔ)言_鏈表總結(jié)

    本篇文章介紹C語(yǔ)言鏈表相關(guān)知識(shí)點(diǎn),涉及鏈表的創(chuàng)建、單向鏈表、循環(huán)鏈表、雙向
    的頭像 發(fā)表于 08-14 09:53 ?2040次閱讀

    OpenHarmony中軟件模塊的鏈表實(shí)現(xiàn)

    為了性能考慮,嵌入式系統(tǒng)一般使用C語(yǔ)言進(jìn)行開(kāi)發(fā),由于C語(yǔ)言標(biāo)準(zhǔn)庫(kù)沒(méi)有封裝鏈表,所以嵌入式系統(tǒng)一般自己設(shè)計(jì)和實(shí)現(xiàn)
    發(fā)表于 08-30 09:25 ?459次閱讀
    主站蜘蛛池模板: 在线91精品亚洲网站精品成人 | 91网视频在线观看 | 黄 色 毛片免费 | 色综合天天综合给合国产 | 俺也来国产精品欧美在线观看 | 色视频线观看在线播放 | 免费视频精品 | 大又大粗又爽又黄少妇毛片 | 秋霞麻豆| 在线观看视频你懂的 | 亚洲不卡视频在线 | www.四虎影院.con | 欧美成网 | www.亚洲5555.com | 国产精品久久久亚洲456 | 夜夜操夜夜爽 | 乱说欲小说又粗又长 | 特级黄毛片 | 亚洲精品成人久久久影院 | 亚洲五月激情综合图片区 | 三级电影天堂网 | 黄在线观看在线播放720p | 中文字幕一区二区三区有限公司 | 色婷婷色婷婷 | 免费视频网站在线观看 | 激情四月婷婷 | 毛片爽爽爽免费看 | аbt天堂资源在线官网 | 久久精品最新免费国产成人 | 欧美黑人巨大日本人又爽又色 | 久久天天躁狠狠躁夜夜免费观看 | 狠狠干狠狠爱 | 天天草天天 | 欧美一级特黄aaaaaa在线看首页 | 日本极度另类网站 | 天天干夜夜叭 | 婷婷网址 | 五月婷婷丁香综合网 | 91大神精品视频 | 日本免费小视频 | 四虎影视永久在线观看 |