c語言結構體例項使用 位段結構體

2021-10-20 21:20:45 字數 1064 閱讀 1123

一、位段結構體介紹

位段結構體就是按位讀寫,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...