sizeof(int) på x64?

sizeof(int) på x64?

Nyckelordet int alias System.Int32 som fortfarande kräver 4 byte, även på en 64-bitars maskin.


Det finns olika 64-bitars datamodeller; Microsoft använder LP64 för .NET:båda långa s och pekare är 64-bitar (även om pekare i C-stil endast kan användas i C# i unsafe sammanhang eller som en IntPtr värde som inte kan användas för pekare-aritmetik). Jämför detta med ILP64 där int s är också 64-bitar.

Således, på alla plattformar, int är 32-bitar och long är 64-bitar; du kan se detta i namnen på de underliggande typerna System.Int32 och System.Int64 .


int betyder Int32 på .NET-språk. Detta gjordes för kompatibilitet mellan 32- och 64-bitars arkitekturer.

Här är tabellen över alla typer i C# och vad de mappar till .NET-mässigt.