• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            typedefstruct(typedef struct)

            更新時間:2023-03-02 10:17:48 閱讀: 評論:0

            1.結(jié)構(gòu)體的定義:

            允許用戶自己建立由不同類型數(shù)據(jù)組成的組合型的數(shù)據(jù)結(jié)構(gòu),它稱為結(jié)構(gòu)體(實際上應(yīng)稱為 結(jié)構(gòu)體類型)。

            2.下面以一個結(jié)構(gòu)體實例來說明一下struct的用法:

            struct os_tcb

            {

            OS_STK *OSTCBStkPtr;

            OS_STK *OSTCBStkBottom;

            INT32U OSTCBStkSize;

            INT16U OSTCBOpt;

            INT16U OSTCBId;

            };

            Sturct 是聲明結(jié)構(gòu)體類型時所必須使用的關(guān)鍵字,不能省略。

            os_tcb 是結(jié)構(gòu)體名

            花括號內(nèi) 是該結(jié)構(gòu)體所包括的子項,稱為結(jié)構(gòu)體成員。

            前面只是建立了一個結(jié)構(gòu)體類型,它相當(dāng)于一個模型,并沒有定義變量,其中并無具體數(shù)據(jù),系統(tǒng)對之也不分配存儲單元。為了能在程序中使用結(jié)構(gòu)體類型的數(shù)據(jù),應(yīng)當(dāng)定義結(jié)構(gòu)體類型的變量,并在其中存放具體的數(shù)據(jù)。

            可以采取以下3中方式定義結(jié)構(gòu)體類型變量。

            (1)先聲明結(jié)構(gòu)體類型,再定義該類型的變量

            定義上面的結(jié)構(gòu)體類型后

            struct os_tcb OS_TCB; // 在定義了結(jié)構(gòu)體變量后,系統(tǒng)會為之

            | | // 分配內(nèi)存單元

            結(jié)構(gòu)體類型名 結(jié)構(gòu)體變量名

            (2)在聲明類型的同時定義變量

            struct os_tcb

            {

            OS_STK *OSTCBStkPtr;

            OS_STK *OSTCBStkBottom;

            INT32U OSTCBStkSize;

            INT16U OSTCBOpt;

            INT16U OSTCBId;

            } OS_TCB; // OS_TCB 是一個結(jié)構(gòu)體變量

            (3)不指定類型名而直接定義結(jié)構(gòu)體類型變量

            struct

            {

            OS_STK *OSTCBStkPtr;

            OS_STK *OSTCBStkBottom;

            INT32U OSTCBStkSize;

            INT16U OSTCBOpt;

            INT16U OSTCBId;

            } OS_TCB; // OS_TCB 是一個結(jié)構(gòu)體變量

            指定了一個無結(jié)構(gòu)體名的結(jié)構(gòu)體類型,顯然不能再以此結(jié)構(gòu)體類型去定義其他變量。

            注:結(jié)構(gòu)體類型與結(jié)構(gòu)體變量是不同的概念,不要混同。只能對變量賦值、存取或運算,而不能對一個類型賦值、存取后運算。在編譯時,對類型不分配空間,只對變量分配空間。

            3.下面再以此結(jié)構(gòu)體實例來說明一下typedef struct的用法:

            (主要參考技術(shù)博客:http://dzdesigned80.blog.163.com/blog/static/203259238201245105525341/)

            閱讀程序發(fā)現(xiàn)兩種用 typedef struct 定義結(jié)構(gòu)體的方法

            第一種:

            typedef struct os_tcb

            {

            OS_STK *OSTCBStkPtr;

            OS_STK *OSTCBStkBottom;

            INT32U OSTCBStkSize;

            INT16U OSTCBOpt;

            INT16U OSTCBId;

            }OS_TCB;

            第二種:

            typedef struct

            {

            OS_STK *OSTCBStkPtr;

            OS_STK *OSTCBStkBottom;

            INT32U OSTCBStkSize;

            INT16U OSTCBOpt;

            INT16U OSTCBId;

            }OS_TCB;

            可以看出,上面的區(qū)別在于 typedef struct 后面一個跟了標(biāo)識符,另外一個沒有跟標(biāo)識符,這兩個有什么區(qū)別呢?這里的os_tcb代表什么?OS_TCB的意義又是什么?

            要搞清楚上面的問題,要從兩方面入手。

            第一 typedef的用法是什么?

            typedef是在基本類型的基礎(chǔ)上定義類型的同義字。注意typedef并不產(chǎn)生新的類型。例如 typedef int exam_score;這里的exam_score 就是一種基本類型,它的意義等同于 int,那么機(jī)可以用它來定義變量,exam_score LIMING。

            第二 結(jié)構(gòu)體的定義各個標(biāo)志符的意義。

            在結(jié)構(gòu)體定義中,通常是這樣的

            struct exam_score

            {

            chine;

            english;

            math;

            physical;

            chemistry;

            }LIMING;

            這里的struct是結(jié)構(gòu)體關(guān)鍵字,exam_score則是結(jié)構(gòu)體類型名,LIMING則是結(jié)構(gòu)體變量。

            弄明白以上兩個問題,回過頭來看開始的那兩個結(jié)構(gòu)體。

            typedef struct os_tcb

            {

            OS_STK *OSTCBStkPtr;

            OS_STK *OSTCBStkBottom;

            INT32U OSTCBStkSize;

            INT16U OSTCBOpt;

            INT16U OSTCBId;

            }OS_TCB; // OS_TCB是一個結(jié)構(gòu)體類型 = struct os_tcb

            這里聲明一種結(jié)構(gòu)體類型os_tcb,所以os_tcb就是結(jié)構(gòu)體類型名;OS_TCB是struct os_tcb 的同義字,所以可以直接用OS_TCB來定義變量,同時也可以這樣 struct os_tcb xxx,OS_TCB xxx;都是合法的,因為OS_TCB就等同于

            struct os_tcb。

            來看第二種

            typedef struct

            {

            OS_STK *OSTCBStkPtr;

            OS_STK *OSTCBStkBottom;

            INT32U OSTCBStkSize;

            INT16U OSTCBOpt;

            INT16U OSTCBId;

            }OS_TCB; // OS_TCB是一個結(jié)構(gòu)體類型 = struct

            在結(jié)構(gòu)體的定義中允許這樣形式的定義:

            struct

            {

            xxx

            xxx

            xxx

            }var;

            這里沒有聲明結(jié)構(gòu)體變量名,直接定義了結(jié)構(gòu)體變量var,var在這里是結(jié)構(gòu)體變量。這樣定義的結(jié)果是在程序不能再定義新的結(jié)構(gòu)體變量。

            這種形式加上typedef 之后情況就變了,這里的OS_TCB不是結(jié)構(gòu)體變量,而是struct的同義字(結(jié)構(gòu)體類型),這個同義僅限于上面定義的那種情況,可以用OS_TCB來定義結(jié)構(gòu)體變量。

            總結(jié):

            有了以上敘述與理解,我們便可以很容易搞清楚一個易混淆的點:struct{}后面的到底是結(jié)構(gòu)體變量名,還是結(jié)構(gòu)體類型名。

            當(dāng)只是定義結(jié)構(gòu)體類型:

            struct 結(jié)構(gòu)體名

            {

            結(jié)構(gòu)體成員名

            }結(jié)構(gòu)體變量名;

            引用結(jié)構(gòu)體成員方式應(yīng)是:

            結(jié)構(gòu)體變量名. 結(jié)構(gòu)體成員名 //結(jié)構(gòu)體變量直接引用結(jié)構(gòu)體成員

            當(dāng)使用typedef定義時:

            typedef struct 結(jié)構(gòu)體名

            {

            結(jié)構(gòu)體成員名

            }結(jié)構(gòu)體類型名;

            引用結(jié)構(gòu)體成員方式應(yīng)是:

            結(jié)構(gòu)體類型名 xxx;// 定義一個結(jié)構(gòu)體變量

            xxx.結(jié)構(gòu)體成員名 // 引用結(jié)構(gòu)體成員

            本文發(fā)布于:2023-02-28 21:05:00,感謝您對本站的認(rèn)可!

            本文鏈接:http://m.newhan.cn/zhishi/a/1677723468102653.html

            版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。

            本文word下載地址:typedefstruct(typedef struct).doc

            本文 PDF 下載地址:typedefstruct(typedef struct).pdf

            標(biāo)簽:typedefstruct   typedef   struct
            相關(guān)文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網(wǎng)旗下知識大全大全欄目是一個全百科類寶庫! 優(yōu)秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 九九久久自然熟的香蕉图片| 中文字幕一区有码视三区| 亚洲综合在线日韩av| 午夜精品一区二区三区成人| 久久综合亚洲鲁鲁九月天| 97人人添人澡人人爽超碰| 中文字幕无码久久精品| 尤物亚洲国产亚综合在线区| 日本欧美大码a在线观看| 亚洲成av人片天堂网无码| 国产成人精品久久性色av| 深夜福利啪啪片| 久久免费观看归女高潮特黄| 亚洲V天堂V手机在线| 伊人久久大香线蕉av色婷婷色| 人妻av中文字幕无码专区| 无码中文av波多野结衣一区| 一区二区免费视频中文乱码| 中日韩中文字幕一区二区| 国产mv在线天堂mv免费观看| 成人免费无码大片a毛片| 老司机精品成人无码av| 别揉我奶头~嗯~啊~的视频 | 国产精品99一区二区三区| 毛片免费观看天天干天天爽| 免费国产午夜理论片不卡| 日本最新免费二区三区| 中文字幕av无码免费一区| 成在人线AV无码免观看麻豆| 国产欧洲欧洲久美女久久| 东京热无码国产精品| 日本伊人色综合网| 中文日韩在线一区二区| 免费看视频的网站| 国产精品电影久久久久电影网 | 亚洲区综合中文字幕日日| 被灌满精子的少妇视频| 国产69久久精品成人看| 亚洲中文字幕无码av永久| 口爆少妇在线视频免费观看| 加勒比精品一区二区三区|