C++ 转换类型(SLODWORD 和 long)
C++ Casting types (SLODWORD and long)
将变量视为浮点数。
*((long*)&variable)
和(long)variable
有什么区别?
这不一样吗?
为什么我的程序为每个输出不同的结果?
前者对变量的处理就像它作为 long
存储在内存中一样,即使它不是。后者将变量转换为 long
.
第一个是 重新解释 存储在 &variable
的位,就好像它们代表长整数一样,而第二个执行 转换 的 variable
值(位 "actually" 代表什么)到合适的 long
值。
将变量视为浮点数。
*((long*)&variable)
和(long)variable
有什么区别?
这不一样吗?
为什么我的程序为每个输出不同的结果?
前者对变量的处理就像它作为 long
存储在内存中一样,即使它不是。后者将变量转换为 long
.
第一个是 重新解释 存储在 &variable
的位,就好像它们代表长整数一样,而第二个执行 转换 的 variable
值(位 "actually" 代表什么)到合适的 long
值。