以下占用多少存储空间?

0 c# storage integer

int 72
Run Code Online (Sandbox Code Playgroud)

这是我们在C#课中讨论的一个问题.我说2个字节,其他人说由于整数类型它使用32位或4个字节.哪个是对的?

Ben*_*igt 8

你需要更加具体.你在想:

  • 保存该值的内存中变量的大小
  • MSIL的大小将该值加载到IL堆栈中,以便可以在表达式中使用它
  • MSIL的大小,用于声明能够保存该值的局部变量
  • MSIL的大小,用于声明能够保存该值的成员变量
  • 运行时从MSIL生成的机器语言的大小
  • 与之关联的元数据和调试信息的大小
  • 别的什么?

有很多不同的"成本"与整数文字的出现相关联,例如(int)72出现在程序中.如果它是更大表达式的一部分,则可以在编译时进行简化,使得文字的边际运行时成本完全没有(除了调试器以显示更长的源代码片段).