VS2015中的一个编译问题
A compilation problems in VS2015
127: int a = 2815;
00007FF78B5126EE mov dword ptr [a],0AFFh
128:
129: short c = static_cast<char>(a);
00007FF78B5126F5 movsx ax,byte ptr [a]
00007FF78B5126FA mov word ptr [c],ax
在我的环境中,一个 int
占用 4 个字节,一个 short 占用 2 个字节,所以在 movsx
指令中,为什么有一个字节而不是一个字?希望有人能帮助我!
它移动 int a
的最低字节,因为那是 static_cast<char>
给你的。
一个char
是一个字节。 static_cast
将 a
转换为 char
。一个字节。因此,char
-cast 变量 a
的一字节值被移动到 ax
.
127: int a = 2815;
00007FF78B5126EE mov dword ptr [a],0AFFh
128:
129: short c = static_cast<char>(a);
00007FF78B5126F5 movsx ax,byte ptr [a]
00007FF78B5126FA mov word ptr [c],ax
在我的环境中,一个 int
占用 4 个字节,一个 short 占用 2 个字节,所以在 movsx
指令中,为什么有一个字节而不是一个字?希望有人能帮助我!
它移动 int a
的最低字节,因为那是 static_cast<char>
给你的。
一个char
是一个字节。 static_cast
将 a
转换为 char
。一个字节。因此,char
-cast 变量 a
的一字节值被移动到 ax
.