编译器如何评估控制流语句?

时间:2017-05-20 14:11:48

标签: c operators evaluation control-flow

我最近注意到可以验证变量的存在(例如指针类型在C中),然后,验证该变量内部的元素(例如在同一控制流中取消引用指针(例如 if语句)。

在注意之前

if (my_array)
{
    if (my_array[n])
    {
        //Do something
    }
}

注意到

if (my_array
     && my_array[n])
{
    //Do something
}

我对这种行为感到有些惊讶,我使用 valgrind 来查看系统在程序执行过程中是否与我“亲切”,但 valgrind 很直,说我已经

  

错误摘要:来自0个上下文的0个错误。

所以我想知道编译器是否只引用运算符,以便创建一种流程图,或者它是另一种类型的评估。每个编译器都使用相同类型的行为吗?

0 个答案:

没有答案