看板 C_and_CPP 關於我們 聯絡資訊
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 * 可以轉成非指標類型的變數的意思? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.242.38.34 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1651113501.A.333.html ※ 編輯: anoymouse (210.242.38.34 臺灣), 04/28/2022 10:39:19
nh60211as: C 才能把指標轉成數值,C++ 要加 -fpermissive 04/28 10:53
nh60211as: 而且如果指標是 64-bit 的話呼叫者還要知道函式轉換 04/28 10:57
nh60211as: 的行為是什麼 04/28 10:57
anoymouse: 的確是C,只限數值對不對? 04/28 11:37
nh60211as: 欸,我不知道除了轉型成指標跟數值你還會想轉成什麼 04/28 16:50
chuegou: 我猜猜 enum或structure? 04/29 00:10
anoymouse: 對啊 會很奇怪 就問問看 04/29 07:56
tinlans: C++ 用 reinterpret_cast<> 轉,不用開 -fpermissive。 04/29 09:03
tinlans: 這 C API 典型的用法之一,傳的人不想去 heap 上配一塊就 04/29 09:04
tinlans: 直接轉型傳,翻 pthread_create() 的範例很容易找到。 04/29 09:04
bachelorwhc: 這樣寫不是不能理解就是 32bit以上結果都會對 04/29 09:47
OnlyRD: 當然可以啊,c++也可以,但是c++需要你確定呼叫強 05/15 20:21
OnlyRD: 制轉型,上面留 05/15 20:21
OnlyRD: 言有寫懶得打字。 05/15 20:21