程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> c語言中位字段與結構聯合的組合使用詳解

c語言中位字段與結構聯合的組合使用詳解

編輯:C語言基礎知識

舉例:
===================================================
代碼如下:

/** INITRM - Initialization of internal ram position register; 0x0000 0010 **/

typedef union {

   byte Byte;

   struct {

      byte RAMHAL :1;

      byte :1;

      byte :1;

      byte RAM11 :1;

      byte RAM12 :1;

      byte RAM13 :1;

      byte RAM14 :1;

      byte RAM15 :1;

   } Bits;

   struct {

      byte :1;

      byte :1;

      byte :1;

      byte grpRAM_11 :5;

   }MergedBits;

} INITRMSTR;

那麼賦值方式就有三種,比如直接給INITRMSTR賦值

INITRMSTR = 0xEF;

也可以位字段賦值

INITRMSTR.Bits.RAM15 = 1;

也可以多位的位字段賦值

INITRMSTR.MergedBits.grpRAM_11 = 26

(26是十進制,轉換成二進制是11010, 直接表示 RAM_11 = 0, RAM_12 = 1, RAM_13 = 0, RAM_14 = 1, RAM_15 = 1)

需要注意的是,在二進制中順序是從右向左,在這個結構體中是從上向下.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved