日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

3天內不再提示

什么是隊列?不受類型限制的隊列如何實現(xiàn)

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

掃碼添加小助手

加入工程師交流群

1、初識size_t

這里可能大部分都不太知道有size_t這樣的一個數(shù)據(jù)類型,可以說該類型是英文size type的一個縮寫,它是一種記錄數(shù)據(jù)大小的數(shù)據(jù)類型(可以認為是一種整形數(shù)據(jù))。其實我們經常使用的sizeof()的返回值數(shù)據(jù)類型就是size_t,只是我們常常用一個整形比如int來保存返回值。

值得我們注意得是:

sizeof類型是一個與操作系統(tǒng)相關得數(shù)據(jù)類型,它主要是為了提高C語言的可移植性和可讀性而加入的,可以說它并不是一種基本的數(shù)據(jù)類型,而且在頭文件中用typedef來重命名的數(shù)據(jù)類型。其實在我們平時很多地方都用到了size_t,比如:

poYBAGL1qh6AYh20AAAj7JvUFGA004.png

我們使用的時候幾乎都用整形比如int變量來使用,并沒有使用到size_t類型,所以說盡管我們的int依賴于C編譯器,有些情況size_t并不是固定的,如果我們用基本類型替換可能帶來數(shù)據(jù)類型過小或者過大的問題,過小可能會導致數(shù)據(jù)溢出問題,過大可能導致運行速度降低!
size_t的使用:只要是用到sizeof等返回值,或者傳入值的變量都定義為size_t類型!

2、什么是隊列?

隊列—

一種特殊的操作受限制得線性表,用戶僅允許在線性表的頭部獲取數(shù)據(jù),在尾部插入數(shù)據(jù),所以大家也叫FIFO(先進先出)線性表。

形象一點的表達

:類似于一隊人排隊鉆進一根只能進入一個人的管子,先進去的人先出來,后面的人只能在從同一個口子進入!

隊列的類型:

順序隊列和循環(huán)隊列。順序隊列,出隊列指針必須>或者=入隊列指針,否則容易出現(xiàn)假溢出現(xiàn)象;而循環(huán)隊列只要入隊列指針與出隊列指針不再次重合就不回溢出!

3、不受類型限制的隊列實現(xiàn)

首先我們先貼上剛剛寫好的Queue.h和Queue.c文件

poYBAGL1qnqAMV7gAAFKVcP9Sws614.png

pYYBAGL1qoGAYmiJAAFDHSF_4Hc866.png

poYBAGL1qoaACHUeAAESAE9aqkQ694.png

pYYBAGL1qo2AYiJoAAC53sBnHt8401.png

poYBAGL1qrqAIybVAADqgoePl0s061.pngpoYBAGL1qsGAbHMXAADP9acB7uY706.png

解析代碼:

1)節(jié)點數(shù)據(jù)結構中采用void類型的指針,能夠指向任意數(shù)據(jù)類型來擴展我們的隊列。

2)隊列數(shù)組順序隊列,我們可以通過修改擴展變成循環(huán)隊列,便于我們使用。

3)具體的使用可以參考上面的例子進行開發(fā)。

4、隊列的應用

1)隊列可以作為一種數(shù)據(jù)緩沖,當我們的數(shù)據(jù)無法實時進行發(fā)送的時候,可以進行適當?shù)年犃芯彌_,集中到一定的數(shù)據(jù),然后進行打包發(fā)送。

2)隊列可以實現(xiàn)任務之間的一個信息交互,可以解決一些多線程問題,實現(xiàn)一種任務之間的異步處理。

3)由于是隊列的一個先進先出特點,我們也可以利用隊列來嚴格的控制數(shù)據(jù)的順序。



審核編輯:劉清

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

    關注

    33

    文章

    9603

    瀏覽量

    157680
  • C語言
    +關注

    關注

    183

    文章

    7646

    瀏覽量

    146208
  • 多線程
    +關注

    關注

    0

    文章

    279

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    IDT72V51233/72V51243/72V51253:多隊列流控設備的技術剖析與應用指南

    IDT72V51233/72V51243/72V51253:多隊列流控設備的技術剖析與應用指南 在電子設備設計中,高效的數(shù)據(jù)處理與傳輸一直是工程師們追求的目標。今天,我將為大家深入剖析
    的頭像 發(fā)表于 04-12 09:40 ?469次閱讀

    RDMA設計43:隊列刪除及連接斷開功能測試

    在接收到正確的刪除隊列請求后,首先進入連接斷開流程,即四次揮手斷鏈,如圖中紅框部分。隨后進行隊列刪除操作。返回隊列操作狀態(tài) 0x2b,符合設計預期,驗證通過。
    的頭像 發(fā)表于 02-24 07:50 ?679次閱讀
    RDMA設計43:<b class='flag-5'>隊列</b>刪除及連接斷開功能測試

    RDMA設計40:隊列管理及連接建立功能驗證與分析

    隊列關聯(lián),并設置隊列容量和傳輸類型。新建的 QP 此時還不能直接使用。 注冊內存區(qū)域(MR) 新創(chuàng)建的 QP 處于初始重置狀態(tài),需要依次切換到初始化狀態(tài)、準備接收狀態(tài),最終進入準備發(fā)送狀態(tài)。在這個過程中
    發(fā)表于 02-13 10:15

    RDMA設計25:隊列管理模塊之發(fā)送模塊詳細設計分析

    發(fā)送隊列存儲為所有發(fā)送隊列共用的存儲空間,根據(jù)用戶環(huán)境和開發(fā)板環(huán)境不同可由 BRAM、URAM 或 LUTRAM 實現(xiàn)。發(fā)送隊列管理單元則負責管理這個存儲空間,并處理用戶指令和發(fā)送
    的頭像 發(fā)表于 01-25 16:27 ?5597次閱讀
    RDMA設計25:<b class='flag-5'>隊列</b>管理模塊之發(fā)送模塊詳細設計分析

    RDMA設計26:隊列管理模塊設計之接收隊列模塊詳細分析

    本文主要交流設計思路,在本博客已給出相關博文100多篇,希望對初學者有用。注意這里只是拋磚引玉,切莫認為參考這就可以完成商用IP設計。 (2)接收隊列 接收隊列由一個接收隊列管理單元組成。與發(fā)送
    發(fā)表于 01-22 09:03

    RDMA設計24:隊列管理模塊設計

    隊列管理模塊采用管理與存儲分離的結構進行設計,由發(fā)送隊列存儲、發(fā)送隊列管理、接收隊列管理、完成條目解析、異常完成條目處理和 Round-Robin 仲裁組成。
    的頭像 發(fā)表于 01-20 11:45 ?1584次閱讀
    RDMA設計24:<b class='flag-5'>隊列</b>管理模塊設計

    RDMA設計18:隊列管理模塊設計3

    本文主要交流設計思路,在本博客已給出相關博文140多篇,希望對初學者有用。注意這里只是拋磚引玉,切莫認為參考這就可以完成商用IP設計。 (3)完成隊列 完成隊列的管理由完成條目解析單元和異常完成條目
    發(fā)表于 01-05 09:04

    RDMA設計17:隊列管理模塊設計2

    。 (2)接收隊列 接收隊列由一個接收隊列管理單元組成。與發(fā)送隊列類似的是,接收隊列管理單元也由若干表單構成,其中包括 RQ1 表單和用戶
    發(fā)表于 01-04 14:54

    C語言的循環(huán)隊列

    循環(huán)隊列(Circular Buffer) typedef struct { int buffer[SIZE]; int head; int tail; int count
    發(fā)表于 12-12 08:28

    NVMe高速傳輸之擺脫XDMA設計54:如何測試隊列管理功能2

    , 表示操作順序錯誤; 創(chuàng)建 I/O 完成隊列和提交隊列后, 先刪除完成隊列, 返回錯誤值為 8, 表示操作順序錯誤。 打印信息顯示測試結果與預期設計功能一致, 成功執(zhí)行了隊列的創(chuàng)建和
    發(fā)表于 12-10 08:33

    優(yōu)先級隊列介紹

    隊列(Queue)的知識點:「概念」:隊列是一種先進先出(FIFO)的數(shù)據(jù)結構,類似于排隊的概念?!富静僮鳌梗篹nqueue(item): 將元素添加到隊列的末尾。dequeue(): 從
    發(fā)表于 11-26 07:56

    基于環(huán)形隊列的UART收發(fā)回顯實驗

    問題。在本實驗中,我們使用環(huán)形隊列實現(xiàn)實驗1的串口收發(fā)回顯,將串口接收到的數(shù)據(jù)暫存在隊列中,待完成一次接收后再將隊列中的數(shù)據(jù)全部發(fā)出去。
    的頭像 發(fā)表于 10-27 13:51 ?2180次閱讀
    基于環(huán)形<b class='flag-5'>隊列</b>的UART收發(fā)回顯實驗

    NVMe IP高速傳輸卻不依賴XDMA設計之九:隊列管理模塊(上)

    這是采用PCIe設計NVMe,并非調用XDMA方式,后者在PCIe4.0時不大方便,故團隊直接采用PCIe設計,結合UVM驗證加快設計速度。 隊列管理模塊采用隊列的存儲與控制分離的設計結構。
    的頭像 發(fā)表于 08-04 09:53 ?875次閱讀
    NVMe IP高速傳輸卻不依賴XDMA設計之九:<b class='flag-5'>隊列</b>管理模塊(上)

    NVMe高速傳輸之擺脫XDMA設計九:隊列管理模塊設計(上)

    條目,一個提交隊列管理單元用于實現(xiàn)提交隊列存儲地址空間的管理和門鈴控制。在提交隊列管理單元中,構建一個admin提交隊列表單和N個I/O提交
    發(fā)表于 07-27 17:41

    RabbitMQ消息隊列解決方案

    在現(xiàn)代分布式系統(tǒng)架構中,消息隊列作為核心組件,承擔著系統(tǒng)解耦、異步處理、流量削峰等重要職責。RabbitMQ作為一款成熟的消息隊列中間件,以其高可用性、高可靠性和豐富的特性,成為眾多企業(yè)的首選方案。本文將從運維工程師的角度,詳細闡述RabbitMQ從單機部署到集群搭建的完
    的頭像 發(fā)表于 07-08 15:55 ?784次閱讀
    滦南县| 建始县| 华阴市| 昌都县| 台南县| 花莲市| 天镇县| 商河县| 罗平县| 天水市| 五大连池市| 神池县| 天台县| 永川市| 抚顺县| 文昌市| 滦南县| 突泉县| 舒兰市| 贵阳市| 通渭县| 汪清县| 东至县| 抚松县| 凤凰县| 苍梧县| 岫岩| 乌鲁木齐县| 宝应县| 比如县| 积石山| 临泽县| 遵义市| 延津县| 汝城县| 方山县| 平陆县| 轮台县| 左贡县| 营山县| 庄浪县|