12.1 p14中未指定值一词的确切含义是什么:
struct C;
void no_opt(C*);
struct C {
int c;
C() : c(0) { no_opt(this); }
};
const C cobj;
void no_opt(C* cptr) {
int i = cobj.c * 100; // value of cobj.c is unspecified
cptr->c = 1;
cout << cobj.c * 100 // value of cobj.c is unspecified
<< ’\n’;
}
我可以在1.3.25中找到未指定行为的定义:
cobj.c
,我得到了正确的结果:第一个为0
,最后一个为1
。这里未指定什么? 最佳答案
您的解释是正确的。该行为未由标准指定。使用此编译器可以获得预期的结果,但是另一个编译器可能会给出不同的结果。如果要将代码移植到另一个编译器,或者可能是正在使用的另一个版本的编译器,则不应依赖此行为。
关于c++ - 标准在12.1 p14中的 “unspecified value”是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20829244/