[英]Constexpr Factorial Compilation Results in VS2015 and GCC 5.4.0
[英]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
指令中,為什么有一個字節而不是一個字? 希望可以有人幫幫我!
一個char
是一個字節。 static_cast
將a
轉換為char
。 一個字節。 因此, char
轉換變量a
的一字節值被移動到ax
。
它移動 int a
的最低字節,因為這是static_cast<char>
給你的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.