这一行的最后一组括号是什么意思?我知道的第一组是类型转换,第二部分(UiMsg)是一个宏。 (tseval)到底是做什么的?
tempState = (ShowSelectState)UiMsg(tseval, current_index)(tseval);
答案 0 :(得分:3)
由于UiMsg
是一个类似函数的宏,因此它后面的第一组括号是宏的参数。因此,您首先需要执行宏替换以查看发生的情况。
所以这个:
tempState = (ShowSelectState)UiMsg(tseval, current_index)(tseval);
变为:
tempState = (ShowSelectState)(tseval)->msg->current_index(tseval);
现在我们可以看到第二组括号表示current_index
成员的参数,可能是函数指针。