新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機中的位域操作

        單片機中的位域操作

        作者: 時間:2016-11-26 來源:網絡 收藏
        在一個工程項目中,有時候我們經常會用到許多狀態標志位。很多時候我們會去程序中定義這些變量,而這些變量往往占用了一個字節(byte),然而我們需要的僅僅是一個狀態位(bit)。這樣去定義變量不僅浪費了存儲空間,而且不利于變量管理。下面,介紹一種使用位域的方法定義狀態標志的方法:

        //定義聯合體,同時命名別名為function

        本文引用地址:http://www.104case.com/article/201611/321954.htm

        typedef union
        {
        u8 flagByte;
        struct
        {
        u8 b0:1;
        u8 b1:1;
        u8 b2:1;
        }bits;

        }function;
        function myflag;//定義聯合體變量myflag

        //變量操作

        union _SYS_STATUS_
        {
        struct
        {
        unsignedm0: 1;

        unsignedm1: 1;

        unsignedm2: 1;

        unsignedm3: 1;

        unsignedm4: 1;

        unsignedm5: 1;

        unsignedm6: 1;

        unsignedm7: 1;

        unsignedi0: 1;

        unsignedi1: 1;

        unsignedi2: 1;

        unsignedi3: 1;

        unsignedi4: 1;

        unsignedi5: 1;
        unsignedi6: 1;

        unsignedi7: 1;


        };
        struct
        {
        unsigned intsysStuAll;
        };
        }
        externunion _SYS_STATUS_ sSysStatus;

        void tempp()
        {
        myflag.flagByte=0;
        myflag.flagByte=0xff;
        myflag.bits.b0=0;
        myflag.bits.b1=0;
        }



        關鍵詞: 單片機位域操

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 嵊泗县| 崇信县| 唐海县| 讷河市| 修水县| 洞口县| 吉木萨尔县| 延庆县| 友谊县| 丹江口市| 防城港市| 朝阳市| 西丰县| 晋中市| 涿州市| 新和县| 塔城市| 汕尾市| 临沂市| 四子王旗| 崇文区| 仪陇县| 苍山县| 苏尼特左旗| 探索| 双柏县| 敦化市| 怀柔区| 津市市| 深水埗区| 惠安县| 尚义县| 南靖县| 广元市| 库尔勒市| 高清| 大城县| 新乐市| 任丘市| 乌拉特后旗| 濮阳县|