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

标签 c pointers null

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

运行此代码时,我在两个无操作处添加了断点。然而,它只在两次中的第二次中断。这怎么可能?

最佳答案

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

关于c - 我正确使用这些指针吗?我正在分配一些东西,但之后它立即为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5555964/

相关文章:

c - 生成无向图的邻接矩阵

c - 如何正确读取C中的stdin?

c - 在末尾插入链表

c++ - 指向指针的指针

c 指针和数组指针

c - 在 C 中返回文本文件中的部分行

我可以使用 [][] 访问类型 int (*)[] 吗?

go - 未初始化的 channel 如何表现?

java - 在 Spring 测试框架 Controller 测试中获取表单参数为 null

java - 为什么 Java 中的原始数据类型不能是 "null"?