ROBOTC - 不确定>符号

Jee*_*ter 0 c

我正在使用ROBOTC来编程我的机器人,而我正在使用其他人构建的代码.在一个函数中,我看到了这一行:

int leftDir = (left>0)*2-1;
Run Code Online (Sandbox Code Playgroud)

leftDir被初始化为一个整数,那么它做了>什么?我的印象是二元转换,但我不确定.有人可以解释一下吗?谢谢.

smb*_*ear 6

>greater than运营商.在C中,比较的结果是1for true0for false.换句话说,上面的代码在逻辑上等同于(但更紧凑):

int leftDir;

if (left > 0) {
    leftDir = 1;
} else {
    leftDir = -1;
}
Run Code Online (Sandbox Code Playgroud)