Переменные в функцию - стек или ОЗУ?

Тема в разделе "Микроконтроллеры AVR", создана пользователем parovoZZ, 24 янв 2019.

  1. Asper Daffy

    Asper Daffy Иксперд

    Не, дед, тут что что-то напутал. Ссылку вообще никак нельзя заставить смотреть на другой объект - ей нельзя ничего присвоить. Если уж она куда-то смотрит (при инициализации), то это до конца её жизни. Принято говорить, что параметр функции - исключение, он мол типа каждый раз смотрит на то, что передали. Но это не так (не исключение). Ссылочная переменная из параметра создаётся в момент вызова функции и живёт до выхода из функции, а потому, здесь тоже работает общее правило - что присвоили при создании ссылки, на то она и ссылается до конца жизни.
     
    DetSimen и parovoZZ нравится это.
  2. parovoZZ

    parovoZZ Гуру

    в душе не чаю. Я же написал - копипаст!
     
    Последнее редактирование: 25 янв 2019
  3. Asper Daffy

    Asper Daffy Иксперд

    Ну, а нафига глупости копипастить?
     
  4. parovoZZ

    parovoZZ Гуру

    я на работе ща. Тут как запустишь, так и вылетишь.
    та не. Я хочу побыть тем дебилом, который кормит вас попкорном)

    всё, я разобралась. Нада так писать
    Код (C++):
    void my_function (my_struct_t& my_struct)
    {....}
    Вот теперь у меня это на своей полочке лежит)
     
  5. DetSimen

    DetSimen Guest

    да да да, я уже вспомнил за ссылки и написал в том сообщении UPD.
     
  6. DetSimen

    DetSimen Guest

    Мне простительно, я не программист, всем этим премудростям не обучен. И кроме воткапития - никаких чудес. :)
     
    Последнее редактирование модератором: 25 янв 2019
    SergeiL и parovoZZ нравится это.
  7. SergeiL

    SergeiL Оракул Модератор

    Так я и про ссылку сегодня узнал. :)
    Разобрался, попробовал скомпилировать, посмотрел адреса, размеры передаваемых данных, изменяемость передаваемых данных, относительно передаваемых данных глобальных переменных.
    Посмотрел, что получается, теперь понятно, спасибо за объяснения!
    Если что, я уже больше 20-и лет, с 1997г., если что-то и пишу, так только для себя и в основном только под МК. ;)
     
  8. Asper Daffy

    Asper Daffy Иксперд

    SergiL, вот тут есть очень подробный разбор методов передачи параметров (их экономичности) с использованием разных парадигм ссылок. Со статьёй местами можно поспорить, но в целом отличная работа - почитайте - http://scrutator.me/post/2018/07/30/value_vs_reference.aspx
     
    SergeiL и DetSimen нравится это.
  9. parovoZZ

    parovoZZ Гуру

    Переписал функции на передачу параметров по указателю. Ссылки мимо проходят - пишу в сях.