C语言中是否存在类型擦除概念?
问题描述:
我不知道在C语言的任何地方是否使用了类型擦除技术。 类型转换完成后,C中会发生什么?它是否使用类似于删除和向下铸造的概念?C语言中是否存在类型擦除概念?
类型擦除和类型铸造之间的主要区别是什么?
答
你是Java开发人员?
如果是的话,你需要忘记很多东西,并学习另一个很多。
向下投射意味着继承。因此,这不是C.
C可几乎所有的东西转换为任何事情(C假设你知道你在做什么,相反到Java,C#等)
类型擦除是一个Java的概念,因为JRE没有按”在运行时没有泛型,只有原始类型。在C语言中,你只有运行时的二进制代码,就像在Assembly中一样,这就是我们需要的闪电般的可执行文件(记住几乎所有的编译器,框架或虚拟机都是用C或C++构建的)。
在C中没有RTTI(运行时类型信息)的这种东西,我们不需要这样做,因为C的目标是直接在金属上编程。
C没有任何潜在类型,所以没有什么可以擦除的。 – Barmar
这是['C++'问题](http://*.com/questions/6089498/type-erasure-for-methods-with-differing-in-return-types)FYI。 –
类型擦除和铸造之间的主要区别是什么? – NaveeNeo