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