說明
結構體定義:
c
複製程式碼
struct BitCard {
unsigned int face : 4; // 4 位元欄位
unsigned int suit : 2; // 2 位元欄位
unsigned int color : 1; // 1 位元欄位
};
這段程式碼定義了一個結構體 BitCard,包含三個 unsigned int 位欄位。每個欄位的位長度分別是 face(4 位元)、suit(2 位元)和 color(1 位元)。
宣告和使用結構體變數:
c
複製程式碼
struct BitCard card;
宣告了一個 BitCard 結構體變數 card。
設置欄位值:
c
複製程式碼
card.face = 10; // 設置面值為 10
card.suit = 3; // 設置花色為 3
card.color = 1; // 設置顏色為 1
打印欄位值:
c
複製程式碼
printf("Face: %u\n", card.face);
printf("Suit: %u\n", card.suit);
printf("Color: %u\n", card.color);
注意事項
位欄位的定義使用了 : n 的語法,其中 n 是位欄位的寬度。
位欄位必須是整數類型(通常使用 unsigned int)。
設置位欄位時,請確保所賦的值在對應位欄位的範圍內。例如,4 位元欄位的範圍是 0 到 15。