[問題] struct如何得到enum?

看板C_and_CPP作者 (99通未接來電)時間12年前 (2011/12/01 23:24), 編輯推噓2(2023)
留言25則, 8人參與, 最新討論串1/1
問題(Question): 如果已知一個 struct中的offset 該offset 又對應為enum 型態的資料 如何取出 enum 中的資料 enum c { c1=10, c2=20 }; struct test { int A; int B; c C; }; #define offset 8 //已知 int main() { test test_data; char *ptr; char result; ptr=(char*)&test_data; result=(enum c) *(ptr+offset); return 0; } 跑出來為 14 是否有辦法可取得c1 c2? 還請各位 先進指導 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.117.168.202

12/01 23:29, , 1F
誤會大了
12/01 23:29, 1F

12/01 23:35, , 2F
請問只能用同型態的?我剛測試一下 char 混者int 也可取出
12/01 23:35, 2F

12/01 23:35, , 3F
可是不知道Enum 就不知道弄了 (該不會標題很誤會吧)
12/01 23:35, 3F

12/01 23:50, , 4F
何必搞成這樣呢...是想實驗啥還是?
12/01 23:50, 4F

12/01 23:51, , 5F
enum不是這樣用的吧...
12/01 23:51, 5F

12/01 23:51, , 6F
公司的code寫成這樣的嗎?
12/01 23:51, 6F

12/02 01:04, , 7F
就算存取到也是亂碼 @@
12/02 01:04, 7F

12/02 10:24, , 8F
~"~你把enum和struct搞錯啦.enum只是把一群常數集中起來
12/02 10:24, 8F

12/02 20:17, , 9F
所以是不行囉 = =
12/02 20:17, 9F

12/02 21:11, , 10F
const c1 = 100; 你有辦法取出"c1"嗎? 只能取出常數值吧
12/02 21:11, 10F

12/02 21:13, , 11F
如果你說要取出C的值.那還有道理.這個誤會好深
12/02 21:13, 11F

12/02 21:41, , 12F
是真的滿誤會的......所以說想用一個指標來取存取struct
12/02 21:41, 12F

12/02 21:42, , 13F
不同類型的資料是沒辦法的嗎...,,謝謝
12/02 21:42, 13F

12/02 21:43, , 14F
那個又是另一個誤會了.你這個例子有兩大誤會
12/02 21:43, 14F

12/02 21:58, , 15F
http://pastie.org/2954967 其實我也搞不懂你想幹麼
12/02 21:58, 15F

12/02 21:59, , 16F
你是想取出c1,c2的字串? 還是c1,c2的值阿
12/02 21:59, 16F

12/02 22:39, , 17F
所以什麼所以,詞不達意地老是推個一兩句讓人看不懂的話
12/02 22:39, 17F

12/02 22:40, , 18F
把你認為的所有東西講清楚,你認為 enum, struct, 指標是
12/02 22:40, 18F

12/02 22:40, , 19F
什麼,然後你想要試驗、達到什麼目的,你又認為應該寫些
12/02 22:40, 19F

12/02 22:41, , 20F
什麼,來取出什麼具體的內容,比如什麼例子,講清楚好嗎
12/02 22:41, 20F

12/02 22:58, , 21F
想做類似this指標的東西(&)傳回結構內所有記憶體的位置
12/02 22:58, 21F

12/02 22:59, , 22F
讓這個結構對應eeprom 記憶體位置 修改
12/02 22:59, 22F

12/02 23:04, , 23F
抱歉 很少發問問題 不禮貌的地方 還請多包含
12/02 23:04, 23F

12/02 23:09, , 24F
你需要先把enum搞懂,再把指標真正的弄清楚
12/02 23:09, 24F

12/02 23:12, , 25F
真的把enum 跟struct 搞混了.. 謝謝
12/02 23:12, 25F
文章代碼(AID): #1Ervn6XV (C_and_CPP)