|
Как писать хороший код |
|
|
|
Oct 18 2016, 16:36
|

Группа: Участник
Сообщений: 5
Регистрация: 18-10-16
Пользователь №: 93 811

|
код, который согласован со стандартом
|
|
|
|
|
Dec 18 2016, 12:53
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Smoky @ Dec 18 2016, 14:40)  допустимо ли Да. Что вас смущает? И что мешает попробовать откомпилить? P.S. printf() тоже значение возвращает, но не попадалось ни одного примера, где это значение использовалось бы.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Dec 18 2016, 13:03
|

Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135

|
Цитата(Сергей Борщ @ Dec 18 2016, 18:53)  Да. Что вас смущает? И что мешает попробовать откомпилить? До компиляции ещё далеко, я только изучаю, как это делается. Использование функций таким образом встречаю впервые...
--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
|
|
|
|
|
Dec 18 2016, 14:53
|

Местный
  
Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135

|
Цитата(zltigo @ Dec 18 2016, 19:29)  Этого не может быть, если только это не вообще первая функция, которую Вы увидели  Си начал использовать с 2010 года, осваиваю самостоятельно но честное слово, такое использование функций не встречал. С самого начала учился по учебнику Бредли Л.Джонса и Питера Эйткена, там всё "жёстко", такой вольности нет. И всё же интересно, куда "улетает" возвращаемое значение функции которое не ждут?
--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
|
|
|
|
|
Dec 18 2016, 15:01
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Smoky @ Dec 18 2016, 16:53)  Си начал использовать с 2010 года, осваиваю самостоятельно но честное слово, такое использование функций не встречал. С самого начала учился по учебнику Бредли Л.Джонса и Питера Эйткена, там всё "жёстко", такой вольности нет. И всё же интересно, куда "улетает" возвращаемое значение функции которое не ждут? Никуда не улетает. Возвращаемое значение в регистре находится. Хочешь пользуй, хочешь нет. В случае функции "ничего" не возвращающей, там наверняка мусор, а так некоторое определенное значение. Вот и вся разница
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 18 2016, 18:48
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Господи, обычный side effect.. железячники одни собрались что ли? Цитата(AlexandrY @ Dec 18 2016, 21:16)  Я тоже, честно говоря. Обычно явно задают некую переменную куда читают из SPI.
Иначе оптимизатор может выкинуть операцию чтения и будете неделями искать откуда в SPI лишние данные берутся. Неиспользуемую дальше переменную он выкинет куда быстрее. Тут он ничего не выкинет, все регистры объявлены volatile , реже прагмами И тут даже к стилю не придраться, в названии все сказано, так более чем можно писать. Даже нужно по смыслу, чтение спи это всегда запись, дажее если запись не имеет смысла. А две отдельные функции тут будут источником глюков, особенно если юнит тест на одной. Разве что можно рид сделать оберткой send_recv
|
|
|
|
|
Dec 18 2016, 19:40
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(AlexandrY @ Dec 18 2016, 20:16)  Иначе оптимизатор может выкинуть операцию чтения и будете неделями искать откуда в SPI лишние данные берутся. Невежество  . Ни при каких обстоятельсвах обращение volatilе переменной не может быть выброшено. Цитата Обычно явно задают некую переменную куда читают из SPI. Даже просто прочитать в никуда можно и нужно, так: Код SPDR;
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|