我从头开始学习C++,因此我对C语言没有专业的理解.在C++中,你不能把无效指针转换成什么,我理解背后的原因.但是,我知道在C中你可以.这有什么可能的原因?它似乎是类型安全的一个巨大漏洞,对我来说,这似乎是一件坏事.
GMa*_*ckG 13
您可以使用两种语言转换void*为另一个指针.也许你含蓄地暗示.
在C中非常方便,不必明确它.在C++中我们有模板,所以要编写通用代码,不需要进行void*转换和诸如此类的东西.在C中没有选择.通用容器必须保持void*对象,并且反复说它mydata* d = node;然后更容易mydata* d = (mydata*)node;.
所以它就像你说的那样.在C类型中,安全性一般没有像在C++中那样受到重视,特别是当void*它被认为是因为它被认为是一个简单的通用指针.在C++中没有必要这样做,所以当你处理它时更好地使它明确.