[問題] 關於函數指標的參數型別轉型
不好意思,想請教版上的大大:
在C99以後,以這個問題來說:
https://goo.gl/aeLCxN
為甚麼void*是不相容於struct my_struct*?
在C中,void*不是可以和非函數指標互轉,並保證在轉回去以原型別解引用時會正確?
但這邊好像並不是這個意思?
自己在網路上找了一些關鍵字,但還是不能理解這個結論的原因。
還希望有大大能指點一下m(_ _)m
另外,在C++中,void*轉到T*(不為函數指標)是需要顯式轉換的,
而T*(不為函數指標)轉到void*是可以被隱式轉換的。
想問下這個規則是標準的哪裡?還是我有誤解的地方?
不好意思了,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.13.151
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1498401215.A.09D.html
推
06/25 23:13, , 1F
06/25 23:13, 1F
→
06/25 23:13, , 2F
06/25 23:13, 2F
原來如此!
另外想再問一下這篇:https://goo.gl/VnXBVn
為甚麼這篇底下說如果滿足那個轉型的假設,就可以讓這個轉型的行為符合預期?
印象中任何非函數指標轉到char*,都是可行的。
void*和char*的對齊要求有可能不一樣嗎?
(參考自這篇:https://goo.gl/UyQr15)
還麻煩各位大大了,感激不盡m(_ _)m
※ 編輯: a27417332 (36.225.123.68), 06/26/2017 14:06:04
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章