c - 这个C表达式是什么意思?

标签 c expression

<分区>

在我的 C 应用程序中寻找一些可重用的代码时,我遇到了这个表达式:

MDO = ((output_data & 0x80) ? 1 : 0);

我明白括号之间是什么,但是 是什么意思? 1 : 0 是什么意思?

最佳答案

它是if-else的简写,叫做ternary operator .

在你的情况下它等于:

if (output_data & 0x80) {
   MDO = 1;
} else {
   MDO = 0;
}

还有一点建议,不要将它用于复杂的 if 结构,它会影响可读性。只有在这种情况下才能立即理解它。

关于c - 这个C表达式是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19901541/

相关文章:

c - 在 C 中初始化多个资源的函数中处理错误(清理和中止)的一些好方法是什么?

c - 我认为的strtok问题

php - 正则表达式和匹配

entity-framework - 给定要映射的 T 的属性名称,如何创建 Expression<Func<T, T>> ?

spring - 特定日期的 Cron 表达式

c# - 是否可以调用参数为 'lambda expression' 的方法?

c - Arduino 纳米 : Memory stability issue

c - 如何给出附加到 shmat() 共享内存段中的起始地址?

C 宏 - 意外结果

python - 了解 pandas 系列提取函数中的正则表达式