Задать вопрос
@20strannik08

Как передать вложенную структуру в функцию?

Пытаюсь в Arduino IDE в функцию передать содержимое вложенной структуры:
struct Test2{
  int b;
};
struct Test {
  Test2 test2;
  int a;
};
Test test;

void setup() {
  test.test2.b = 1; // ok
  func(test.test2); // Ругается, пишет could not convert 'test.Test::test2' from 'Test2' to 'Test'
}

void loop() {}

void func(struct Test buff){
  // ...
  }


Выдает ошибку. Как правильно будет?
  • Вопрос задан
  • 207 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Правильнее будет void func(const Test2& buff){} если ты не собираешься изменять структуру внутри функции. В этом случае будет передана не копия структуры, а ссылка на оригинал, что будет быстрее. Если собираешься изменять, и тебе нужно передать изменения "наружу" func(), убери const.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Shavadrius
Так у вас функция принимает на вход Тест, а вы Тест2 туда передаете... Ну как бы...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы