c++ - 将取消引用的指针作为函数参数传递给结构
问题描述
如果一个函数内部的指向结构的指针被取消引用并作为参数传递给另一个函数,如何访问该函数内部的结构成员?
例如,一个指向结构的指针被传递给这样的函数:
main_logic_tick(&settings);
在main_logic_tick
函数内部,指针被取消引用并作为参数传递给另一个函数(即tick()
):
void main_logic_tick(Settings* settings)
{
//...
state_machine.tick(*settings);
}
如何Settings
通过settings
上面的 tick()-function 中的 -variable 访问结构的成员?是按值调用还是按引用调用?最后,tick() 函数的函数原型应该是什么样子的?
解决方案
如何通过上面的 tick() 函数中的设置变量访问结构设置的成员?是按值调用还是按引用调用?最后,tick() 函数的函数原型应该是什么样子的?
tick()
Settings
可以按值或按引用接受对象。听起来您希望它通过引用接受其参数——您希望能够修改对象并使修改在上游的两个函数中可见。为此,您将使用:
void tick(Settings& settings);
在里面tick
,您将使用通常的语法来访问引用的成员——使用点 ( .
) 运算符。
settings.member = new_value;
推荐阅读
- pine-script - 使用变量设置直线的 x 点
- git - Github 分叉存储库搞砸了
- r - 如何识别函数输出,以便我可以做出“漂亮的输出”和/或减少输出量
- python - 启用 MFA 的 Office 365 SharePoint 列表上的 Python 读/写
- ios - SwiftUI .sheet() 的主体在解雇后被评估并且不呈现
- node.js - Supervisord 可以通过调用 node.js 进程的 Health API 或执行 shell 命令来进行健康检查吗?
- java - Flyway 迁移仅在 linux 服务器上失败
- python - 如何在geodjango中转换英里公里
- sql - 将一些列(但不是全部)转换为行
- snapshot - 为什么我的 dbt 快照导致同一天有这么多 dbt_from_dates?