我正确使用这些指针吗?我正在分配一些东西,但之后它立即为空

时间:2011-04-05 17:30:43

标签: c pointers null

if ((*l).proc == NULL)
    {
        (*l).proc = current_process;
        if(current_process == NULL)
        {
            __no_operation();
        }
        if((*l).proc == NULL)
        {
            __no_operation();
        }
    }

运行此代码时,我在两个no-ops都添加了断点。但是,它只会在两者中的第二个中断。这怎么可能?

1 个答案:

答案 0 :(得分:0)

任何理智的编译器都会将这两个相同的块优化为一个块。它可能还会将两个条件优化为一个。如果您想看到两个单独运行,请将puts("A");添加到第一个,puts("B");添加到第二个。