一、位段結構體介紹
位段結構體就是按位讀寫,c語言提供了專門的結構體方式
二、位段結構體定義
struct
;struct
status;
三、位段結構體訪問
status.widthvalidated =0;
printf
("%d"
, status.widthvalidated)
;
四、工程例項
需求:當前有個32位暫存器reg_1
bit0為啟動,bit1為停止,bit2-bit3為狀態0為空閒1忙2完成,bit4-bit7預留
bit8-bit15為輸入資料
bit16-bit31為輸出結果
將8位value放入計算得到結果
常規操作:
char value =10;
reg_1 &=~
(0xff
<<8)
;reg_1 |
=(value<<8)
;//傳入資料
reg_1 |
=0x01
;while
(reg_1&
(0x03
<<2)
!=(0x02
<<2)
);printf
("%d"
,(reg_1>>16)
);
位段結構體操作:
typedef
struct
reg_def;
reg_def *preg;
char value =10;
preg =
(reg_def *
)®_1;
preg->input = value;
preg->start =1;
while
(preg->state !=2)
;printf
("%d"
,preg->output)
;
C語言結構體與位段
1.結構體的定義 有以下3種方法定義結構體型別變數。1 先宣告結構體型別再定義變數 2 在宣告型別的同時定義變數 例如 struct student student1,student2 3 直接定義結構體型別變數struct 變數名錶 2.結構體初始化 例如 struct student stude...
C語言結構體中的位段
c語言結構體中的位段 位段的記憶體分配 位段的成員可以是 int unsigned int signed int 或者是 char 屬於整形家族 型別 位段的空間上是按照需要以4個位元組 int 或者1個位元組 char 的方式來開闢的。位段涉及很多不確定因素,位段是不跨平台的,注重可移植的程式應該...
結構體及位段
一 結構體 struct 是由一系列相同型別或不同型別的資料構成的資料集合。1.宣告乙個結構體的一般形式,如 struct student struct 結構體名 2.結構的定義 1 先宣告結構體型別在定義結構體變數 如上面已定義了乙個結構體型別變數,然後定義結構體變數。如 struct stude...