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.