作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
谁能举个例子
Boolean_conversions Using reinterpret_cast<>
我遇到执行失败..任何人解释..
例如:
void Boolean_Conversions()
{
bool b = 0;
int *i = reinterpret_cast<int*> (&b);
// iam expecting as *i is 0/false ,but it is showing runtime error
}
编辑:符合ISO标准第 5.2.10 节,第 1 段:
"The result of the expression reinterpret_cast<T>(v) is the
result of converting the expression v to type T. If T is a
reference type, the result is an lvalue; otherwise, the re
sult is an rvalue and the l-value to r-value (4.1), array
to pointer (4.2), and function to pointer (4.3) standard c
onversions are performed on the the expression v. Types sh
all not be defined in a reinterpret_cast."
从这个我正在尝试..我做了很多转换..像 Array_to_Pointer,Function_To_Pointer,Integral/Pointer_Conversions 等等...但我不知道为什么 bool 转换失败。
谁能说出它失败的原因..否则使用 reinterpret_cast 告诉 bool 转换。
主要是在 G++.CC/EDG/COdepad..etc 编译器中导致运行时失败
请解释
最佳答案
不,输出未定义。请注意,转换是未定义的。
在我的机器上 *i = 0xcccccc00
Note the lsb which is 00
对应于初始化为 0(false) 的 bool 变量的值。其他三个字节中的字节模式(假设 int 的大小为 32 位)是完全未指定的,取决于内存/字节顺序等中的内容。
但从技术上讲,这是一种未定义的行为,因为我们正在推迟我们没有保留/分配的内存位置(全部)。
关于c++ - Boolean_conversions 使用 reinterpret_cast<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4344201/
谁能举个例子 Boolean_conversions Using reinterpret_cast<> 我遇到执行失败..任何人解释.. 例如: void Boolean_Conversio
我是一名优秀的程序员,十分优秀!