在C中识别内存中值的数据类型?

Sha*_*dra 3 c types runtime-type

程序/应用程序如何知道存储器地址中的数据是某种数据类型.

例如,假设存在int a;并假设变量a存储在地址中0x100.存储的信息在哪里说它是类型int

cni*_*tar 12

在像C这样的语言中,信息总是以您解释数据的方式 "存储" .编译器添加了一些好处,它在某种程度上理解了变量的类型,并试图阻止那些没有意义的操作.

例如,假设你有位:0xFFFFFFFF.如果你把它们解释为"32b无符号整数"你就会得到4294967295.如果您将它们解释为"32b signed int",您将获得-1(*).如果你把它们解释为双重,上帝知道你会得到什么.


hei*_*991 6

无处,它只是由代码承担.