这个运算符在C中是什么意思



我有以下代码片段:

for(int i=0;i<6; i++)  rtk->rb[i]=i<3?opt->rb[i]:0.0;

我听不懂这句话的意思。。。rtk是一个结构体,它有一个名为rb的字段(这是一个数组(,opt是另一个结构,它也有一个相同的字段rb。。。simbols<和让我困惑…rtk类型是rtk_t,而opt类型是prcopt_t:

typedef struct {        

double rb[6];       /* base position/velocity (ecef) (m|m/s) */
....
} rtk_t;
typedef struct {        
double rb[3];       /* base position for relative mode {x,y,z} (ecef) (m) */

} prcopt_t;

这里的右边部分:

rtk->rb[i]=i<3?opt->rb[i]:0.0;

i<3?opt->rb[i]:0.0

是另一种说法:

if (i < 3)
{
x = opt->rb[i];
}
else
{
x = 0.0;
}

只是你写它的方式是使用ternary operators

相关内容

  • 没有找到相关文章

最新更新