扫码关注官方订阅号
float* 与 int* 互转会导致数据不正确,为什么C/C++还允许这么转?有其他什么用途吗?
走同样的路,发现不同的人生
C 允许把你任意类型的指针转成另外的类型,至于得到的数据有没有用那是程序员的事。
就算你规定 float* 不能转成 int*,任何指针必然能和 void* 互转。你的限制有意义么?
float*
int*
void*
一个东西存在不一定非要有用途,也可以是因为功能完整性的原因。底层应该提供机制,而非策略。
很多C语言的库都是通过将struct object指针转为void来实现容器的
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
C 允许把你任意类型的指针转成另外的类型,至于得到的数据有没有用那是程序员的事。
就算你规定
float*不能转成int*,任何指针必然能和void*互转。你的限制有意义么?一个东西存在不一定非要有用途,也可以是因为功能完整性的原因。底层应该提供机制,而非策略。
很多C语言的库都是通过将struct object指针转为void来实现容器的