Передача разыменованного указателя на структуру в качестве аргумента функции - PullRequest
0 голосов
/ 09 февраля 2019

Если указатель на структуру внутри одной функции разыменовывается и передается в качестве аргумента другой функции, как получить доступ к элементам структуры внутри этой функции?

Например, указатель на структурупередается функции следующим образом:

main_logic_tick(&settings);

Внутри функции main_logic_tick указатель разыменовывается и передается в качестве аргумента другой функции (например, tick()):

void main_logic_tick(Settings* settings)
{
    //...
    state_machine.tick(*settings);
}

Как мне получить доступ к членам структуры Settings через settings -вариант внутри функции tick () выше?Это звонок по значению или звонок по ссылке?И, наконец, как должен выглядеть прототип функции для функции tick ()?

1 Ответ

0 голосов
/ 09 февраля 2019

Как получить доступ к членам настроек структуры через переменную settings внутри функции tick () - выше?Это звонок по значению или звонок по ссылке?И наконец, как должен выглядеть прототип функции для функции tick ()?

tick() может принимать объект Settings по значению или по ссылке.Звучит так, будто вы хотите, чтобы он принимал свой аргумент по ссылке - что вы хотите иметь возможность изменять объект и иметь возможность изменения видны двумя функциями выше по потоку.Для этого вы должны использовать:

void tick(Settings& settings);

Внутри tick вы будете использовать обычный синтаксис для доступа к элементам ссылки - используя оператор точки (.).

settings.member = new_value;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...