111,129
社区成员
发帖
与我相关
我的任务
分享
a[i] = sex.male;
00000067 mov eax,dword ptr [ebp-44h]
0000006a mov edx,dword ptr [ebp-40h]
0000006d cmp eax,dword ptr [edx+4]
00000070 jb 00000077
00000072 call 768CAE04
//上面的不用看 关于循环数组索引的一些内容
00000077 mov byte ptr [edx+eax+8],0AAh //当数据很多时(我声明了sex[] a=new sex[10000]).net使用byte存储内容
//因为此时内存空间对性能的影响大于处理32位数对系统的影响
class Program
{
static void Main(string[] args)
{
sex a = sex.male;
sexy b = sexy.male;
}
}
enum sex:byte
{
male=0xAA,
female=0xBB
}
enum sexy : int
{
male = 0x00AAAAAA,//稍微变了下 便于一会查看
female=0x000000BB
}
sex a = sex.male; //这句被编译成了下面
0000003c mov dword ptr [ebp-40h],0AAh
sexy b = sexy.male;
00000043 mov dword ptr [ebp-44h],0AAAAAAh
enum sex:byte
{
male=0;
female=1;
}
enum sexy:int
{
male=0;
female=1;
}
sex A=sex.male; //A在栈中占用一个字节的位置
sexy B=sexy.male //B在栈中占用四个字节的位置 因为int是4字节整数