c - If语句和顺序执行

标签 c if-statement

<分区>

我有一个非常简短(而且几乎是菜鸟)的问题。我有一个功能,包括:

void function(int x)
{
    x = 3;
    if (x == 4)
        printf("HI!");
    x = 4;
}

HI! 会被打印出来吗?换句话说,C 程序是否顺序读取?

非常感谢!

最佳答案

不,代码编译成一系列指令,这些指令一个接一个地发生。与 4 的比较总是在赋值 x = 4 之前。所以它会是假的。

当您处理单个线程时,可以保证这种顺序。当你有多个线程时,除非你小心,否则你可能会得到奇怪的结果和竞争条件。

关于c - If语句和顺序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17287288/

相关文章:

qsort 比较函数中的 const 限定符

C int数组与指针交互

c - 如何在 C 中打印一个无符号字符?

java - 程序只会输出else语句

batch-file - 批处理 IF ELSE 语句都执行

angularjs - angular.js 中的内联条件

java - C 代码给出了错误的答案,但 java 代码给出了关于 spoj 的正确答案

c - 如何将马拉雅拉姆语打印为 c/c++ 程序输出?

javascript - 为什么这个函数总是返回 false?

javascript - 条件运算符 "? : "可以被视为 JavaScript 中 if-else 语句的替代吗?