我有以下代码片段:
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