c语言中“?”的用法
这句语法看不懂,谁能讲讲什么意思: (CutCount % 2 == 0) ? (SetCutDataFun(Num,1),EquRunFlag.CutBreakReadValtageFlag = 1) : (SetCutDataFun(0,1),EquRunFlag.CutBreakReadValtageFlag = 0);该行上下文是这样的: } if(EnableCutFlag == 1) { if(EquRunFlag.CutTime200msFlag == 1) { EquRunFlag.CutTime200msFlag = 0; (CutCount % 2 == 0) ? (SetCutDataFun(Num,1),EquRunFlag.CutBreakReadValtageFlag = 1) : (SetCutDataFun(0,1),EquRunFlag.CutBreakReadValtageFlag = 0); if(CutCount++ >= CutNums) { CutCount = 0; SetCutDataFun(0,1); EquRunFlag.CutBreakReadValtageFlag =0; R595OEHigh(); ProPinHigh(); return 1; } } }
逻辑表达式? 表达式1:表达式2
其实它很好理解 ,就是条件判断 if else 的另一种表示
相当于
if (逻辑表达式) { 表达式1 } else {表达式2}
你的
(CutCount % 2 == 0) ? (SetCutDataFun(Num,1),EquRunFlag.CutBreakReadValtageFlag = 1) : (SetCutDataFun(0,1),EquRunFlag.CutBreakReadValtageFlag = 0);
等价于:
if (CutCount % 2 == 0)
(SetCutDataFun(Num,1),EquRunFlag.CutBreakReadValtageFlag = 1);
else
(SetCutDataFun(0,1),EquRunFlag.CutBreakReadValtageFlag = 0);
下一篇:应用程序发生异常怎么处理呢