PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] void* 轉型成 非指標型態
作者:
anoymouse
(沒有暱稱)
2022-04-28 10:38:19
Linux ubuntu WSL
GCC
簡化過的程式:
bool app_usb_activity(void *extra_data)
{
case Mic:
{
uint8_t* target_level = (uint8_t*)extra_data;
break;
}
case Audio:
{
uint32_t event = (uint32_t) extra_data;
break;
}
}
所以void * 可以轉成非指標類型的變數的意思?
作者:
nh60211as
2022-04-28 10:53:00
C 才能把指標轉成數值,C++ 要加 -fpermissive而且如果指標是 64-bit 的話呼叫者還要知道函式轉換的行為是什麼
作者:
anoymouse
(沒有暱稱)
2022-04-28 11:37:00
的確是C,只限數值對不對?
作者:
nh60211as
2022-04-28 16:50:00
欸,我不知道除了轉型成指標跟數值你還會想轉成什麼
作者:
chuegou
(chuegou)
2022-04-29 00:10:00
我猜猜 enum或structure?
作者:
anoymouse
(沒有暱稱)
2022-04-29 07:56:00
對啊 會很奇怪 就問問看
作者:
tinlans
( )
2022-04-29 09:03:00
C++ 用 reinterpret_cast<> 轉,不用開 -fpermissive。這 C API 典型的用法之一,傳的人不想去 heap 上配一塊就直接轉型傳,翻 pthread_create() 的範例很容易找到。
作者:
bachelorwhc
(單身老王)
2022-04-29 09:47:00
這樣寫不是不能理解就是 32bit以上結果都會對
作者:
OnlyRD
(里巷人)
2022-05-15 20:21:00
當然可以啊,c++也可以,但是c++需要你確定呼叫強制轉型,上面留言有寫懶得打字。
繼續閱讀
[閒聊] 令人驚訝的未定義行為例子
nh60211as
[問題] 關於for迴圈問題
lovesaber
[問題] *(ptr++)放在等號兩邊 結果不同
lybercydia
Re: [問題] 關於C++學習過程請教
tinlans
[問題] 關於C++學習過程請教
Suxing133
[閒聊] C syntax proposal int * a,b
KanzakiHAria
[問題] template class + QList的問題
su27
[問題] template + vector
su27
[問題] 請問new出來的 vector<int>*如何delete
su27
[問題] 記憶體位址回傳問題
Kuba4ma
Links
booklink
Contact Us: admin [ a t ] ucptt.com