C语言中是否存在类型擦除概念?

时间:2016-11-22 19:47:09

标签: c types casting downcast erasure

我想知道C语言中是否使用了类型擦除技术。 在进行类型转换时,C中会发生什么?它是否使用类似于类型擦除和向下铸造的概念?

类型擦除和类型转换之间的主要区别是什么?

1 个答案:

答案 0 :(得分:1)

您是Java开发人员吗?
如果是,你需要忘记很多事情,并学习另一个很多。

向下投射意味着继承。所以这不是C。

C几乎可以投射任何东西(C假设您知道自己在做什么,与Java,C#和其他人相反)

类型擦除是一个Java概念,因为JRE在运行时没有泛型,只有原始类型。

在C语言中,您在运行时只有二进制代码,就像在Assembly中一样,我们需要拥有闪电般快速的可执行文件(请记住,几乎所有编译器,框架或虚拟机都是用C语言构建的,或者C ++)。

在C中没有RTTI(运行时类型信息)这样的东西,我们不需要这个,因为C的目标是直接在金属上编程。