内存如何确定变量的数据类型?

这个问题在这里已经有了答案:

  • 在C中识别内存中的值的数据类型? 5个答案

  • 内存不需要知道存储的数据类型和位置。 内存仅仅是将地址块中的值存储起来。

    编译器的工作是确定类型并从内存中获取适当的数据。


    假设我将这个值存储在我的内存中,内存如何确定这是字符串还是int

    它没有。

    数据类型如何存储在内存中

    如果存储了类型信息,以及如何完全达到所用的编程语言和运行时环境。 我知道C(编译器和标准库)的所有实现都不会将数据类型与值一起存储。 其他编程语言和rumtimes做。

    但是随着C如何解释内存的内容完全由程序确定,即对特定内存位置的内容执行的机器级别操作。 这取决于程序员(你)不要向编译器说谎在内存位置可以找到什么。


    比特是比特。 它不仅没有特定类型的内存,而且它可以同时拥有多种类型。 类型的概念大多只与人类有关,有时与逻辑有关,但从不记忆。

    你可能有一个程序,你有一个变量是一个地址,一个结构的基地址可以说。 但是当你想访问这个结构中的一个项目时,一些位是从你认为是地址位的内存中收集的,但是然后它们进入逻辑中进行相加,这样就可以将你认为是一个结构的偏移量计算。 该加法器只将这些位看作操作数,既不是签名也不是无符号的加法器,因为二进制补码不知道其差异,因此执行加法操作,在您的人脑中,这些位是地址,但对于逻辑,它们只是位,也许登陆一个寄存器或者可能只是一个寄存器+偏移加载或存储指令中的一个步骤。 这些位可能需要经过mmu才能从虚拟转换为物理。 这些位不仅仅是表中的偏移量,更多的数学运算,加法器中的操作数,然后一些位被替换以使它们成为物理地址,您认为地址的大部分位现在已经消失,被替换。

    在小学我有一支铅笔,其实很多,但在某一天,人们可以想象一支铅笔。 在乘坐公共汽车上学时,我的口袋里坐着的腿可能会让我感到疼痛。 也许那支铅笔然后变成了背部划痕。 或者可能是像狗骨一样啃食的东西。 然后最终它可能被用来写下拼写单词,英文铅笔。 然后在数学课上它被用来添加数字,另外一支铅笔。 美术课,艺术铅笔。 科学。 历史等。就像内存中的位,通用目的一样,只有它们在一个时钟周期内被使用的上下文将它们按逻辑定义为别的东西,然后它们再次只是位。

    链接地址: http://www.djcxy.com/p/82489.html

    上一篇: How does memory determine data type of variable?

    下一篇: Where does constant local variable array go in memory for a 'C' program