Keil显示expression with possibly no effect

  1. #include <REGX52.H>
    void main()
    {
    while(1)
    {
     if(P3_1==0)
     {
         P2_0==0;
     }
     else
     {
         P2_0==1;
     }
    
    }
    }

编译结果是
main.c(8): warning C275: expression with possibly no effect
main.c(12): warning C275: expression with possibly no effect

== 替换 =

这个问题的根本原因是使用了 JavaScript 语法中的运算符重载,导致了 if 语句的分支结果不确定。

解决这个问题的关键在于避免使用运算符重载,而是使用 if 语句的嵌套结构来对条件进行判断。在 JavaScript 中,可以使用箭头函数来重载运算符,但这种方法会导致代码可读性和可维护性下降。

要解决这个问题,可以将 if 语句的分支结构改为使用嵌套结构,例如:

if (P3_1 == 0) {
  if (P2_0 == 0) {
    // do something
  } else {
    // do something else
  }
} else if (P2_0 == 1) {
  // do something
}

这样,即使 JavaScript 语法中的运算符重载存在,也不会导致代码的不可读和不可维护性。