Unfog 0 1 марта, 2018 Опубликовано 1 марта, 2018 · Жалоба 1. Если нужно работать с копией: void foo(type obj). При этом будет вызван конструктор копирования, со всеми вытекающими (стек, скорость). 2. Если нужно работать с исходным объектом: а) Объект можно/нужно изменять: void foo(type* obj) б) Объект нельзя изменять: void foo(const type& obj) При sizeof(type) больше разрядности процессора/контроллера второй вариант быстрее первого, т. е. нужно передать только адрес объекта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 1 марта, 2018 Опубликовано 1 марта, 2018 (изменено) · Жалоба А если я передаю адрес объекта я могу в другой функции модифицировать объект? Если это однопоточная система, мютексы не нужны как я понимаю. void main (void) { while (1) { ModifyObject(MyStruct *my_struct); ProcessObject(MyStruct *my_struct); } } Изменено 1 марта, 2018 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Unfog 0 1 марта, 2018 Опубликовано 1 марта, 2018 · Жалоба Да, можно. Но нужно помнить про прерывания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться