PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] __packed type 傳遞問題
作者:
eleghost
(eleghost)
2021-04-08 19:10:34
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Keil C
問題(Question):
我想要宣告一塊連續記憶體, 利用__packed包住讓兩個陣列中間沒有padding.
但當要對這塊記憶體存取時, 或傳遞到 void* 變數時, 會發生error.
請問這個有法解決嗎? thanks
錯誤結果(Wrong Output):
Error: argument of type "__packed int16_t *" is incompatible with
parameter of type "void *"
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
http://pastie.org/p/6IyFOaduXr98h7CzkumZeB
補充說明(Supplement):
作者:
CMJ0121
(請多指教!!)
2021-04-08 22:23:00
你提供的 source code 我在 gcc 10.2.0 可以編的過不過要稍微修改成 recursive / callee(_Buf.buf1, NULL .
作者:
Lipraxde
(Lipraxde)
2021-04-08 22:27:00
你的 callee 的參數也改成 __packed 看看
https://bit.ly/39TCxLK
,看 Errors 那邊大多數嵌入式晶片在存取 nonaligned 的東西時會變得很沒效率,建議還是分兩個版本吧。
繼續閱讀
[問題] QT 的QLabel如何改變文字背景顏色?
liu2007
[問題] 請問local變數在離開stack後為何能存取
Keitaro
[問題] makefile patsubst 反斜線問題
anoymouse
[問題] 河內塔照順序問題
isaac410
[問題] decltype疑問
WangDaMing
[問題] 請問有鍵盤組合鍵的ASCII碼的相關資料嗎?
IOP14759
[問題][QT] 如何阻止QLabel重疊?
liu2007
[分享] 使用 ccache 加速編譯
lc85301
[心得] gcc tail call (tail recursion)optimize
descent
[問題]C 語言問題
kandrew
Links
booklink
Contact Us: admin [ a t ] ucptt.com