PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] union & 二維陣列
作者:
news9801
(相框中的世界)
2019-12-26 15:09:15
嗨
最近再看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]裡面呢?
目前好像都沒有找到這樣的使用方式,不曉得有沒有人用過。
最後感謝各位花時間看這個問題 :))
作者:
Lipraxde
(Lipraxde)
2019-12-26 19:03:00
我覺得你的 union 跟我認識的不太一樣...S1_C1、S1_C2 應該在同個位置吧?你的 debugger 真的這樣顯示?還是貼上來的 code 不一樣?
https://ideone.com/5mUcus
作者:
johnpage
(johnpage)
2019-12-27 02:38:00
宣告union結構,再用它當資料類型宣告陣列
作者:
Lipraxde
(Lipraxde)
2019-12-27 12:28:00
這樣跟宣告 union Sx_Cx var[a][b]; 好像沒多少區別啊...
繼續閱讀
Re: [問題] 如何將此程式碼 用迴圈的方式表達
qscgy4
visual c++ cli能像c#一樣調用properties.resour
wilson50101
[問題] 如何將此程式碼 用迴圈的方式表達
lhz135
Re: [問題] struct alignment
BaJiaJhon
寫作業output出一堆環境變數的路徑
jeremy119
Re: [問題] struct alignment
DJWS
Re: [問題] struct alignment
descent
[問題] struct alignment
DJWS
[閒聊] 請問有程式群組嗎
yanyan8852
[問題] 區域變數是如何存在記憶體上的?
wei115
Links
booklink
Contact Us: admin [ a t ] ucptt.com