如果一个函数内部的结构指针被取消引用并作为参数传递给另一函数,那么如何访问该函数内部结构的成员?
例如,将指向结构的指针传递给这样的函数:
main_logic_tick(&settings);
在main_logic_tick
函数内部,该指针被取消引用,并作为参数传递给另一个函数(即tick()
):
void main_logic_tick(Settings* settings)
{
//...
state_machine.tick(*settings);
}
如何通过上面tick()函数内的Settings
变量访问结构settings
的成员?它是按值调用还是按引用调用?最后,tick()函数的函数原型应该是什么样的?
答案 0 :(得分:3)
如何通过上面tick()函数内部的settings-variable访问结构设置的成员?它是按值调用还是按引用调用?最后,tick()-函数的函数原型应该是什么样的?
tick()
可以按值或引用接受Settings
对象。听起来您希望它通过引用接受其参数-您希望能够修改对象并使修改在上游的两个函数中可见。为此,您将使用:
void tick(Settings& settings);
在tick
内,您将使用常规语法访问引用的成员-使用点(.
)运算符。
settings.member = new_value;