[問題] union & 二維陣列
嗨
最近再看union的功能,有看過一些介紹與使用範例,
不過看了一些範例的使用方式,都沒有目前想要實現的功能。
以下面例子為例
volatile union{
unsigned char Table_ALL[2];
union {
unsigned char Byte ;
struct {
unsigned char C1_1:1;
unsigned char C1_2:1;
unsigned char C1_3:1;
unsigned char C1_4:1;
unsigned char C1_5:1;
unsigned char C1_6:1;
unsigned char C1_7:1;
unsigned char C1_8:1;
}BIT;
} S1_C1;
union {
unsigned char Byte ;
struct {
unsigned char C2_1:1;
unsigned char C2_2:1;
unsigned char C2_3:1;
unsigned char C2_4:1;
unsigned char C2_5:1;
unsigned char C2_6:1;
unsigned char C2_7:1;
unsigned char C2_8:1;
}BIT;
} S1_C2;
}Table;
Table.S1_C1.Byte看到的資料等同Table.Table_ALL[0]
Table.S1_C2.Byte看到的資料等同Table.Table_ALL[1]
後來我想說是不是可以在裡面宣告一個二維陣列 Table_ALL[2][2] 來使用呢?
因此我在裡面把 Table_ALL[2] 改為 Table_ALL[2][2]
經過Debug模式看到原本的 S1_C1 是放在 Table_ALL[0][0],
S1_C2 是放在 Table_ALL[0][1] 裡面了沒錯
但是我該如何把在裡面增加一個S2_C1放在Table_ALL[1][0]裡面呢?
目前好像都沒有找到這樣的使用方式,不曉得有沒有人用過。
最後感謝各位花時間看這個問題 :))
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.216.1.168 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1577344159.A.770.html
→
12/26 19:03,
5年前
, 1F
12/26 19:03, 1F
→
12/26 19:04,
5年前
, 2F
12/26 19:04, 2F
你指的同個位置是說,修改S1_C1會把S1_C2和Table_ALL[0]一起改掉嗎?
我實際用Debug模式去看他是我上面說的那樣,如果我再加一組S1_C3下去的話
他是跟S1_C1跟Table_ALL[0]共用同個記憶體的
不曉得關鍵字要下甚麼會比較多我要的例子,目前找很久都只有一般union的範例 :((
※ 編輯: news9801 (115.43.145.7 臺灣), 12/26/2019 21:13:34
→
12/26 22:14,
5年前
, 3F
12/26 22:14, 3F
→
12/26 22:14,
5年前
, 4F
12/26 22:14, 4F
→
12/26 22:23,
5年前
, 5F
12/26 22:23, 5F
推
12/27 02:38,
5年前
, 6F
12/27 02:38, 6F
※ 編輯: news9801 (61.216.1.168 臺灣), 12/27/2019 08:35:09
剛剛我試了一下發現可以,我把程式的連結補在這邊
感謝各位,用了一下ipraxde使用的ideone覺得滿好用的XD
https://ideone.com/Aye6ET
※ 編輯: news9801 (61.216.1.168 臺灣), 12/27/2019 09:08:01
→
12/27 12:28,
5年前
, 7F
12/27 12:28, 7F
→
12/27 12:28,
5年前
, 8F
12/27 12:28, 8F
Lipraxde說的這個部分有範例讓我參考嗎:D
※ 編輯: news9801 (61.216.1.168 臺灣), 12/27/2019 14:50:29
→
12/27 16:26,
5年前
, 9F
12/27 16:26, 9F
→
12/27 16:26,
5年前
, 10F
12/27 16:26, 10F
→
12/27 16:26,
5年前
, 11F
12/27 16:26, 11F
感謝兩位的意見與Lipraxde的範例,
這邊的話我可能沒有說清楚,因為我需要每個Bit都是獨立的,
得用不同名稱做辨認,因此得一個一個建起來。
感謝兩位的回答 :))
※ 編輯: news9801 (61.216.1.168 臺灣), 12/30/2019 09:02:21
→
12/30 18:31,
5年前
, 12F
12/30 18:31, 12F
→
12/30 18:31,
5年前
, 13F
12/30 18:31, 13F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章