C如何知道预期的类型?

Jac*_*out 13 c memory twos-complement single-precision

如果所有值都不超过一个或多个字节,并且没有字节可以包含元数据,那么系统如何跟踪字节所代表的数字类型?在维基百科上查看两个补码和单点揭示了这些数字如何用二进制表示,但我仍然想知道编译器或处理器(不确定我在这里处理的是什么)如何确定这个字节必须是有符号整数.

它类似于接收加密的信件,并且看着我的密码架,想知道要抓住哪一个.有些指标是必要的.

如果我想一下我可以做些什么来解决这个问题,我会想到两个解决方案.我要么声称一个额外的字节并用它来存储描述,要么我会专门为数值表示分配内存部分; 用于签名号码的部分,用于花车的部分等.

我主要在Unix系统上处理C,但这可能是一个更普遍的问题.

Joh*_*ode 9

系统如何跟踪字节所代表的数字类型?

"系统"没有.在转换期间,编译器知道它正在处理的对象的类型,并生成用于处理这些值的适当机器指令.

  • @JackStout:差不多,是的.大多数编译器保持什么叫做*符号表*,其中包含有关对象的类型,知名度,寿命,联动等在翻译过程中的相位信息它是用来执行语义规则(如作业类型匹配,或阻止您修改一个`const`限定的对象).在代码生成阶段,它用于为操作选择正确的机器指令(例如,该长字用于浮点计算). (3认同)