只有少数人关注的短路原则

c语言

与 或 操作

大部分编程语言都有与操作(&&)跟或操作(||)

与,顾名思义就是两者都的意思,条件A与条件B在编程中表示同时满足条件A和条件B即为真。

或,顾名思义就是两者选其一的意思,条件A或条件B在编程中表示,只要满足条件A和条件B中的一个即为真。

短路

短路是一个不被大家所关注的一个编程语言知识点,其原理是在与或操作中,当前条件既可以判断出结果时不再往后执行。

例如:

int a = 0, b = 0;
(a++) && (b++);

此时b++操作被短路,原因是a++的值是0,0与上任何值都是0,所以后续操作不需要执行既可以得出与操作的值,那么此时c语言程序会对此进行优化,使得b++不被执行。

int a = 1,b = 1;
(a++) || (b++);

此时b++操作依然被短路,原因是a++的值是1,1或上任何值都是1,同理c语言程序会对此优化处理。

短路应用(用于条件控制)

例如:

if (a)//满足条件a 则调用函数do_something
{
    do_something();
}

此时可以使用短路原则进行优化

a && do_something();

好处(优势)

  • 减少if-else语句,有利于cpu进行分支预测(有关分支预测见https://www.jianshu.com/p/d7f2172bd383)
  • 语句简洁

坏处(劣势)

  • 用于出bug
  • 不易于理解

总结

短语原则的应用一般只应用于很简单的分支语句中,切勿乱用。

你可能感兴趣的:(只有少数人关注的短路原则)