|
1
41
通过将y赋给强制转换返回的值,您实际上没有强制转换该值。
唯一真正的区别是最后一个(隐式转换)将在更高的警告级别上生成编译器诊断。但它们在功能上都是一样的——在许多情况下 事实上 同样的事情,就像在相同的机器代码中一样。
如果你真的想假装
你可以看到这有多危险。实际上,当我在我的机器上运行这个命令时,输出是
|
|
|
2
38
在C++中
你要做的不是重新解释。如果你想重新解释
尽管等价的基于指针的重新解释可能更为明确
尽管如此,请注意,
当然,在任何情况下,在平台上
所以,归根结底,一切都归结为你试图达到的目标。记忆重新解释?见上文。某种更有意义的
|
|
|
3
11
reinterpret_cast不是通用的cast。根据C++ 03规范部分5.2.101:
并且没有列出描述整型和浮点型(或整型之间)转换的内容,即使这是非法的
|
|
|
4
9
如果你想转换你的
|
|
|
5
3
编译器拒绝了你写的废话,因为
这是潜在的危险,因为如果
如果要将整数转换为双精度数,请使用
如果要访问的位模式
|
|
|
6
2
reinterpret cast允许您将内存块重新解释为不同的类型。必须在指针上执行此操作 或参考文献 :
另一件事是,它实际上是一个非常危险的强制转换,不仅因为结果中出现了奇怪的值,或者上面的断言没有失败,而且因为如果类型的大小不同,并且您从“源”类型重新解释为“目标”类型,则重新解释的引用/指针上的任何操作都将访问
|
|
|
7
1
从 msdn :
|
|
|
8
0
将int值强制转换为double值并不需要强制转换。编译器将隐式执行赋值。
reinterpret_cast与指针和引用一起使用,例如,
|
|
|
9
0
这很有趣。可能它在尝试将强制转换为double之前正在进行从int到float的隐式转换。int和float类型通常以字节为单位具有相同的大小(当然,这取决于您的系统)。 |
|
|
10
0
这种重新解释的方法让我走上了一条奇怪的道路,结果千差万别。最后,我发现这样的记忆力要好得多!
|
|
|
DutChen18 · 如何在C宏中内联触发隐式指针转换? 1 年前 |
|
|
0xDED · 如何将泛型类强制转换为对象的泛型类? 2 年前 |
|
|
Niclas · 变量>-1如何在C中精确求值? 2 年前 |
|
|
Textime · 将Varchar2转换为时间 2 年前 |
|
|
xpt · Go,无法将类型*int32转换为类型*int64 2 年前 |