二进制处理器如何区分两个相同字节大小的变量类型

0 c c++ variables binary types

我想弄清楚两个变量类型如何具有相同的字节大小?

如果我有一个变量,大小为一个字节。计算机如何判断它是一个字符而不是布尔类型变量?或者甚至是一个字符或半个短整数?

Mat*_*ton 5

处理器不知道。编译器会执行此操作,并生成适当的指令供处理器执行,以适当的方式操作内存中的字节,但对于处理器本身来说,一个字节的数据就是一个字节的数据,它可以是任何东西。

语言赋予这些事物以意义,但这是处理器并不真正意识到的抽象。

  • @TorbenCarrington:指令与它们所作用的数据分开存储。递增“char”的 C 代码将生成“在该地址递增 8 位值”的指令,而递增“short”的代码将生成“在该地址递增 16 位值”的指令。编译器知道类型,因此知道它应该生成哪些指令。 (2认同)