[問題] 將struct cast成 (char *)

看板C_and_CPP (C/C++)作者時間16年前 (2009/02/23 21:57), 編輯推噓3(309)
留言12則, 4人參與, 最新討論串1/1
看了RakNet的manual上有一段可以將struct轉成 char *, 但是看不太懂. 它給了一個範例, 但不確定是不是將struct轉成 char *的必要條件. 拿 去 compile 跑出一大串 error. #pragma pack(push, 1) struct structName { unsigned char typeId; // Your type here // Your data here }; #pragma pack(pop) 能請高手指點一下嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.110.117.10

02/23 22:49, , 1F
自問自答..用以上方法就過了
02/23 22:49, 1F

02/23 22:55, , 2F
請問樓上 這問題是什麼阿 完全看不懂他問什麼= =
02/23 22:55, 2F

02/23 23:31, , 3F
這不是必要條件,轉型成char*跟去掉struct alignment無相關
02/23 23:31, 3F

02/23 23:32, , 4F
去掉alignment只是可以確保offset就是你要的變數位址
02/23 23:32, 4F

02/23 23:51, , 5F
offset 不一定算得出來喔, 順序沒有一定要跟你宣告的一樣
02/23 23:51, 5F

02/23 23:51, , 6F
應該只是沒有 padding
02/23 23:51, 6F

02/24 11:58, , 7F
我是在加了 unsigned char typeId; 後, 可以直接將struct
02/24 11:58, 7F

02/24 11:59, , 8F
cast成(char *)並compile過,不知道是不是這個lib有做特別處
02/24 11:59, 8F

02/24 12:00, , 9F
理過,不過拿來做封包傳送還蠻方便的
02/24 12:00, 9F

02/24 12:14, , 10F
剛試過用g++也可以正常將struct轉成char *並提取struct中的
02/24 12:14, 10F

02/24 12:14, , 11F
資料
02/24 12:14, 11F

02/24 12:15, , 12F
抱歉對c++還不熟 問了些奇怪的問題
02/24 12:15, 12F
文章代碼(AID): #19egjEfh (C_and_CPP)
文章代碼(AID): #19egjEfh (C_and_CPP)