91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

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

C語言-枚舉、共用體

DS小龍哥-嵌入式技術(shù) ? 來源: DS小龍哥-嵌入式技術(shù) ? 作者: DS小龍哥-嵌入式技 ? 2022-09-09 11:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 共用體

前面章節(jié)學(xué)習(xí)了結(jié)構(gòu)體,結(jié)構(gòu)體里可以按順序存放相同或者不同的數(shù)據(jù)類型,每個成員都有它對應(yīng)的存儲空間。
而共用體和結(jié)構(gòu)體一樣也可以按順序存放相同或者不同數(shù)據(jù)類型,但是與結(jié)構(gòu)體的區(qū)別是,共用體所有成員共用一個存儲空間,存儲空間由成員中存儲空間最大的來決定。

定義共用體的關(guān)鍵字: union

下面通過結(jié)構(gòu)體、共同體兩個定義代碼對比區(qū)別。

結(jié)構(gòu)體定義示例:

struct app
{
    int a;
    char b;
};

結(jié)構(gòu)體:每個成員是占用獨(dú)立的空間,結(jié)構(gòu)體成員之間會因?yàn)閮?nèi)存對齊產(chǎn)生間隙。

共用體定義示例:

union app
{
    int a;
    int b;
    char c;
};

**共用體:**也稱為聯(lián)合體,采用內(nèi)存覆蓋技術(shù),每個成員共用一個內(nèi)存空間,開空間是以最大的成員開空間。 在單片機(jī)嵌入式設(shè)備里使用較多。共用體的語法和使用方法(定義、成員變量的訪問形式等等)與結(jié)構(gòu)體一樣。

共同體案例代碼:

#include 
#include 

union app
{
    int a;
    int b;
    char c;
};

//匿名方式定義,只能在定義共用體的時(shí)候就定義變量
union
{
    int a;
    int b;
    char c;
}a1,a2,a3;  //定義3個變量

union app2
{
    int a;
    int b;
    char c;
}b1,b2;

typedef union app3
{
    int a;
    int b;
    char c;
}c1;  //c1是新的數(shù)據(jù)類型--union app3的別名

int main()
{
    b1.a=65;
    b1.b=66;
    printf("%d\n",b1.a); //66
    printf("%d\n",b1.b); //66
    printf("%c\n",b1.c); //66 
    return 0;
}

2. 枚舉

C語言的枚舉可以給一串有序的數(shù)字集合定義名字,特別是數(shù)量較多的整數(shù)需要定義名字時(shí),比#define更加方便。特別是定義函數(shù)的返回值類型,特別方便,項(xiàng)目開發(fā)中,一般標(biāo)準(zhǔn)的函數(shù)返回值都有很多種情況,為了方便調(diào)用者判斷錯誤類型,可以把這些錯誤值全部使用枚舉定義,這樣調(diào)用者就能清楚知道每個數(shù)值代表的含義。

枚舉的定義語法:

enum枚舉名{枚舉元素1,枚舉元素2,……};

默認(rèn)成員都是從0開始,如果某一個成員被賦了值,則該成員以后的元素都以此為基礎(chǔ)遞增。

枚舉的定義及用法示例:

#include 
#include 

#define DEF_VAL 100

//枚舉類型
/*
枚舉內(nèi)部的是常量標(biāo)識符,這些常量標(biāo)識符就相當(dāng)于全局變量(聲明放在函數(shù)之外)
枚舉常量只能整型。
默認(rèn)情況下枚舉值是從0開始的,依次遞增。
*/
enum app
{
   a1='A',a2,a3,a4
};

typedef enum app2
{
   b1='A',b2,b3,b4
}type_app2;

//枚舉在程序開發(fā)中最常用的地方是:表示函數(shù)執(zhí)行的狀態(tài)值。

int main()
{
    printf("%d\n",a1);
    printf("%d\n",a2);
    printf("%d\n",a3);
    printf("%d\n",a4);
    return 0;
}

type_app2 func1()
{
    
    return b2;
}

enum app2 func2()
{
    return b3;
}

枚舉應(yīng)用案例2:

#include 
#include 

//枚舉類型
/*
枚舉內(nèi)部的是常量標(biāo)識符,這些常量標(biāo)識符就相當(dāng)于全局變量(聲明放在函數(shù)之外)
枚舉常量只能整型。
默認(rèn)情況下枚舉值是從0開始的,依次遞增。
*/
enum app
{
   a1=0,   //表示OK
   a2,   //第一次空間申請失敗
   a3,   //表示第二次空間申請失敗
   a4,
   a5,
   a6
};

//枚舉在程序開發(fā)中最常用的地方是:表示函數(shù)執(zhí)行的狀態(tài)值。
enum app func();
int main()
{
    printf("%d\n",func());
    return 0;
}

enum app func()
{
    int *p1=NULL;
    int *p2=NULL;
    p1=malloc(4);
    if(p1==NULL)
    {
        return a2; //1
    }

    p2=malloc(4);
    if(p2==NULL)
    {
        return a3;//2
    }
    return a1; //0
}

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

    關(guān)注

    5152

    文章

    19676

    瀏覽量

    317713
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    C語言枚舉精講分析

    ? ? ?在使用帶有數(shù)字性質(zhì)的名稱時(shí)有的時(shí)候需要用到枚舉的方式進(jìn)行定義函數(shù)名字,按照對應(yīng)的數(shù)字格式來對應(yīng)相應(yīng)的名稱。枚舉成員的值是常量不是變量。 ? ? ?我們首先講解一下枚舉與結(jié)構(gòu)
    的頭像 發(fā)表于 03-02 10:58 ?4286次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中<b class='flag-5'>枚舉</b>精講分析

    C語言枚舉的基本概念和常見用法

    C語言中,枚舉是一種方便組織和表示一組相關(guān)常量的工具。枚舉類型有助于提高代碼的可讀性和可維護(hù)性。本文將介紹C
    發(fā)表于 08-17 15:32 ?2119次閱讀

    C語言必備知識共用

    共用是一種 構(gòu)造數(shù)據(jù)類型 ,有時(shí)候也稱之為聯(lián)合體。它的用途:使幾個不同類型的變量共占一段內(nèi)存。
    的頭像 發(fā)表于 11-29 16:04 ?1352次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>必備知識<b class='flag-5'>共用</b><b class='flag-5'>體</b>

    C語言必備知識枚舉

    枚舉類型是ANSI C新標(biāo)準(zhǔn)所增加的。如果一個變量只有幾種可能的值,可以定義為枚舉類型。所謂“枚舉是指將變量的值一一列舉出來,變量的值只限于列舉出來的值的范圍內(nèi)。
    的頭像 發(fā)表于 11-29 16:07 ?1039次閱讀

    什么是C語言共用

    ;volatile unsigned char G: 1;volatile unsigned char DP: 1; } B; volatile unsigned char W;} ;這是個什么共用?怎么稱呼的?這是共用
    發(fā)表于 10-25 02:32

    結(jié)構(gòu)共用的區(qū)別

    轉(zhuǎn)載重點(diǎn):共用的所有成員占用同一段內(nèi)存,修改一個成員會影響其余所有成員。圖形分析影響過程通過前面的講解,我們知道結(jié)構(gòu)(Struct)是一種構(gòu)造類型或復(fù)雜類型,它可以包含多個類型不同的成員。在
    發(fā)表于 07-20 06:57

    C語言的結(jié)構(gòu)共用在單片機(jī)中的妙用是什么

    【分享】C語言的結(jié)構(gòu)共用在單片機(jī)中的妙用C語言
    發(fā)表于 11-30 06:13

    怎樣去使用C語言的結(jié)構(gòu)共用

    C語言的結(jié)構(gòu)共用分別有何特點(diǎn)呢?怎樣去使用C語言
    發(fā)表于 01-17 07:51

    C語言程序設(shè)計(jì)教程之結(jié)構(gòu)共用的詳細(xì)資料說明

    本文檔詳細(xì)介紹的是C語言程序設(shè)計(jì)教程之結(jié)構(gòu)共用的詳細(xì)資料說明主要內(nèi)容包括了:1 結(jié)構(gòu),2
    發(fā)表于 03-01 17:20 ?11次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>程序設(shè)計(jì)教程之結(jié)構(gòu)<b class='flag-5'>體</b>與<b class='flag-5'>共用</b><b class='flag-5'>體</b>的詳細(xì)資料說明

    go語言枚舉類型怎么用

    go 語言枚舉類型是這么用的?在什么場景下會用到枚舉?本文對 go 語言枚舉做了詳細(xì)講解。 枚舉
    的頭像 發(fā)表于 09-02 09:43 ?5488次閱讀

    C語言的結(jié)構(gòu)共用在單片機(jī)中的妙用

    【分享】C語言的結(jié)構(gòu)共用在單片機(jī)中的妙用C語言
    發(fā)表于 11-20 19:36 ?20次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的結(jié)構(gòu)<b class='flag-5'>體</b>和<b class='flag-5'>共用</b><b class='flag-5'>體</b>在單片機(jī)中的妙用

    什么是C語言共用類型

    結(jié)構(gòu)變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。而共用變量所占的內(nèi)存長度等于最長的成員的長度。
    的頭像 發(fā)表于 03-24 15:13 ?1081次閱讀

    C語言枚舉簡述

    C語言中,如果一個變量只有幾種可能的值,則可以定義為枚舉類型,所謂“枚舉”就是指把可能的值一一列舉出來,變量的值只限于列舉出來的值的范圍內(nèi)。
    的頭像 發(fā)表于 03-24 15:15 ?1128次閱讀

    詳解C/C++結(jié)構(gòu)、聯(lián)合體和枚舉的區(qū)別與內(nèi)存對齊

    C語言中構(gòu)造類型一共有4種,它們分別是數(shù)組、結(jié)構(gòu)(struct)、共用(union)、枚舉
    的頭像 發(fā)表于 06-08 14:38 ?5830次閱讀
    詳解<b class='flag-5'>C</b>/<b class='flag-5'>C</b>++結(jié)構(gòu)<b class='flag-5'>體</b>、聯(lián)合體和<b class='flag-5'>枚舉</b>的區(qū)別與內(nèi)存對齊

    枚舉有多大?c語言枚舉end的作用是什么?

    枚舉有多大?c語言枚舉end的作用是什么? 枚舉C語言
    的頭像 發(fā)表于 01-19 14:19 ?953次閱讀
    主站蜘蛛池模板: 亚洲天堂ww| 亚洲综合日韩欧美一区二区三 | 日本不卡高清免费 | 欧美亚洲韩国国产综合五月天 | 三级国产 | 好紧好爽的午夜寂寞视频 | 99久久精品免费看国产 | 天堂在线最新版在线www | 天天干天天色天天 | 午夜毛片视频高清不卡免费 | 色内内免费视频播放 | 美女黄18以下禁止观看的网站 | 国产亚洲精品久久久极品美女 | 色狠狠狠色噜噜噜综合网 | 欧亚激情偷乱人伦小说视频 | 五月综合久久 | 人人干人人玩 | 美女视频一区二区三区 | 沟沟人体一区二区 | 色屁屁www免费看视频影院 | 亚洲综合狠狠 | 亚洲成网站 | 黄色hd| 欧美成人天天综合在线视色 | a站在线观看| 5566成人 | 1024你懂的在线播放欧日韩 | 中文字幕在线一区二区在线 | 国内a级毛片免费··· | 午夜无码国产理论在线 | 久久综合久| 成人理伦 | 男生脱美女内裤内衣动态图 | 日本黄页网站在线观看 | 在线免费观看h视频 | 国产三级在线视频观看 | 四虎永久免费地址在线网站 | 大又大又粗又爽又黄毛片女人 | 神马午夜第九 | 二区在线播放 | 国产成人v爽在线免播放观看 |