最后一组括号在这一行上意味着什么?

时间:2018-04-24 18:21:42

标签: c

这一行的最后一组括号是什么意思?我知道的第一组是类型转换,第二部分(UiMsg)是一个宏。 (tseval)到底是做什么的?

tempState = (ShowSelectState)UiMsg(tseval, current_index)(tseval);

1 个答案:

答案 0 :(得分:3)

由于UiMsg是一个类似函数的宏,因此它后面的第一组括号是宏的参数。因此,您首先需要执行宏替换以查看发生的情况。

所以这个:

tempState = (ShowSelectState)UiMsg(tseval, current_index)(tseval);

变为:

tempState = (ShowSelectState)(tseval)->msg->current_index(tseval);

现在我们可以看到第二组括号表示current_index成员的参数,可能是函数指针。