4字节这是我在86使用的代码和x64C#短,字节发生在86
static unsafe void Main(string[] args)
{
short a = 4;
short b = 5;
short* x = &a;
short* y = &b;
Console.WriteLine((int)x);
Console.WriteLine((int)y);
Console.ReadLine();
}
用于x86我得到的回答像“xxxxx224 xxxxx220” 针对x64我得到的回答像“xxxxx000 xxxxx002"
为什么是短,字节,布尔以在x86和普通的4个字节在x64
你甚至不能保证获得相同的班级布局。 AFAIK JIT si免费选择任何它喜欢的地方。一方面存在一致性问题,另一方面存在尺寸限制。此外,32位JIT和64位JIT是完全独立的代码段。他们不需要工作一样。 – Joey
此外,您从这里的答案中获得什么?如果你关心内存布局,有更好的方法来控制它,例如具有结构成员的属性。如果你不这样做,那为什么要麻烦? – Joey
我想了解事情如何与此一起工作。我无法解决为什么32位JIT做到这一点,64位JIT以不同的方式作出反应。这是否有任何具体原因 – Pradeep