清风

导航

编译器优化误解程序员的意思

来自CsOH学长张瑯小强

http://www.cnblogs.com/CsOH/p/6019868.html

void contains_null_check(int *P) {
    int dead = *P;
    if (P == NULL)
        return;
    *P = 4;
}

编译器想,*P前面解引用啦,那它肯定不是空的啦。

于是if那一段就被删掉啦。

愉快的段错误。

posted on 2016-12-22 21:42  清风2009  阅读(120)  评论(0编辑  收藏  举报