[問題] 結構與陣列能互相映射嗎?

看板C_and_CPP (C/C++)作者 (憶秋風痕)時間13年前 (2012/10/25 15:12), 編輯推噓0(0022)
留言22則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我有一個結構 struct _Zone { char x; char y; char z; }Zone1, Zone2; 有一個陣列 char Array[10]; 其中 Array[5] = Zone1.x; Array[7] = Zone1.y; Array[3] = Zone1.z; Array[1] = Zone2.x; Array[9] = Zone2.y; Array[6] = Zone2.z; 如上 陣列中有幾個值需要跟結構相等 我的問題是 由於這樣寫, 變成當我要改變Array[5]的值時要這樣寫 Zone1.x = 0xF; Array[5] = Zone1.x; 當然也能直接把結構去掉,直接以Array[5] = 0xF結束 只是這樣程式會很不好view.... 萬一是Zone1 ~ Zone10 一長串寫下來不是不行,總覺得應該有方法可以簡化 是否有寫法能讓 我在寫 Zone1.x時,同時Array[5]的值也會跟著變動 有想過記憶體映射的方式 只是不太得其門而入 想問問有沒有其他人有更好的意見? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.150.58

10/25 15:19, , 1F
有。死心吧你。
10/25 15:19, 1F

10/25 15:19, , 2F
你陣列裡面對應結構元素的空間根本不連續,這樣可以記憶
10/25 15:19, 2F

10/25 15:20, , 3F
體映射,那我不就是周星馳。多寫幾行不會怎樣的。
10/25 15:20, 3F

10/25 15:23, , 4F
哈哈,現在遇到的問題是結構體太多啦~寫下去超多行的= =
10/25 15:23, 4F

10/25 15:23, , 5F
還是感謝提供意見
10/25 15:23, 5F

10/25 15:30, , 6F

10/25 15:31, , 7F
前提是你要在 Array 的 scope 裡宣告 Zone1 Zone2
10/25 15:31, 7F

10/25 15:33, , 8F
原來還有這種寫法!! 太感謝了!!
10/25 15:33, 8F

10/25 15:35, , 9F
這是struct的constructor。
10/25 15:35, 9F

10/25 15:36, , 10F
疑!原 po 標題是 C ??
10/25 15:36, 10F

10/25 15:43, , 11F
要改A同時改B的話就用指標吧...
10/25 15:43, 11F

10/25 16:02, , 12F
其實寫個函數再用陣列對應不就結了。
10/25 16:02, 12F

10/25 16:16, , 13F
能詳述一下嗎? constructor這方式在VC可行,但是我現在
10/25 16:16, 13F

10/25 16:16, , 14F
用的IDE,他的編譯器不支援Orz
10/25 16:16, 14F

10/25 16:41, , 15F
你用的是哪種 IDE?
10/25 16:41, 15F

10/25 16:42, , 16F
TI的CCS 5,寫單晶片的
10/25 16:42, 16F

10/25 16:45, , 17F
因為是用eclisse做的,以為有建構子,看來只有C的編譯器
10/25 16:45, 17F

10/25 16:47, , 18F

10/25 16:48, , 19F
C 版本
10/25 16:48, 19F

10/25 16:52, , 20F
剛搜尋後有找到類似方法,正在試的時候linotwo大就幫忙了
10/25 16:52, 20F

10/25 16:53, , 21F
非常感謝,也長知識了。我現在才知道結構也能用建構子
10/25 16:53, 21F

10/25 16:53, , 22F
以及在結構中用指標的方式,今天學習到不少阿
10/25 16:53, 22F
文章代碼(AID): #1GYEPl1W (C_and_CPP)
文章代碼(AID): #1GYEPl1W (C_and_CPP)