int main(void)
{
uint32_t tmp;
uint8_t returnCode;
I2C_M_SETUP_Type *txrx_setup;
tmp = I2C_getNum(I2C0);
txrx_setup = (I2C_M_SETUP_Type *) i2cdat[tmp].txrx_setup; //???
returnCode = (I2Cx->I2STAT & I2C_STAT_CODE_BITMASK);
txrx_setup->status = returnCode;
do
{
;
}
while(1);
}
这不是主函数?
变量i2cdat[tmp].txrx_setup被强制定义为I2C_M_SETUP_Type结构类型;而且是 I2C_CFG_T结构类型的一个成员参数。tmp值表示定义了一个数组参数值。也就是说,I2C_CFG_T结构类型的一个成员txrx_setup,被定义为I2C_M_SETUP_Type结构类型;
txrx_setup = (I2C_M_SETUP_Type *) i2cdat[tmp].txrx_setup表示txrx_setup变更等于访问数组为tmp的结构成员txrx_setup,而结构txrx_setup是I2C_M_SETUP_Type 结构类型。
牛逼程序,完全看不懂