|
static variable |
|
|
|
 |
Ответов
|
Apr 4 2016, 06:22
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Baser @ Apr 3 2016, 17:38)  При "правильном" программировании Но такой подход убивает чистоту функции, а в некоторых языках программирования чистота функции большой плюс. Функцию с внутренней переменной step не особенно запихнешь в библиотеку для повторного использования. С многопоточностью будут проблемы у такой функции. Совпадение имен глобальной и локальной переменной тоже лучше не практиковать - попутать что где легче простого.
|
|
|
|
|
Apr 5 2016, 04:55
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
QUOTE (adnega @ Apr 4 2016, 12:22)  Но такой подход убивает чистоту функции, а в некоторых языках программирования чистота функции большой плюс. Функцию с внутренней переменной step не особенно запихнешь в библиотеку для повторного использования. С многопоточностью будут проблемы у такой функции. Ну, с глобальной переменной будет ровно то же самое. Что касается полезности, то завит от. У локальных статических функций есть свои плюсы. Например, функции-генераторы. Или тот же синглтон Мейерса. Реализация получается простая и эффективная. Конечно, в любом случае программист должен чётко представлять, что он делает и какие последствия могут возникнуть из-за неправильного использования. QUOTE (adnega @ Apr 4 2016, 12:22)  Совпадение имен глобальной и локальной переменной тоже лучше не практиковать - попутать что где легче простого. Это да. К слову, глобальных переменных нужно стараться избегать, во всяком случае, минимизировать их количество.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 5 2016, 08:04
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(dxp @ Apr 5 2016, 07:55)  Ну, с глобальной переменной будет ровно то же самое. А если все необходимые переменные передавать в функцию (в виде списка или сложного объекта)? Разумеется, что совсем без побочных действий не обойтись, но если данные можно отделить от кода, то я такой возможностью пользуюсь. Тут пример для управления шаговым двигателем приводили. Предложенная реализация возможна для одного двигателя, а если их много больше? Я бы сделал массив объектов, которые бы хранили все необходимое - и текущий шаг, и скорость, и ускорение, и целевое значение, обратную связь по энкодеру или потенциометру, адреса пинов, если это необходимо. А функцию, решающую что делать с полем step, сделал бы универсальной. Разумеется static переменных в ней не было бы. Оформил бы это в виде библиотеки и таскал из проекта в проект, где есть хоть один шаговый двигатель.
|
|
|
|
Сообщений в этой теме
Jenya7 static variable Apr 3 2016, 09:40 Baser Цитата(Jenya7 @ Apr 3 2016, 12:40) с тем ... Apr 3 2016, 10:31 Jenya7 Цитата(Baser @ Apr 3 2016, 16:31) Для огр... Apr 3 2016, 10:59    Сергей Борщ Цитата(adnega @ Apr 5 2016, 10:04) Разуме... Apr 5 2016, 08:52     adnega Цитата(Сергей Борщ @ Apr 5 2016, 11:52) с... Apr 5 2016, 09:02 Jenya7 спасибо. наконец то понял для чего это нужно. Apr 4 2016, 05:50 Baser Цитата(adnega @ Apr 4 2016, 09:22) Но так... Apr 5 2016, 10:13 Сергей Борщ Цитата(Baser @ Apr 5 2016, 12:13) Для таб... Apr 5 2016, 10:48  Baser Цитата(Сергей Борщ @ Apr 5 2016, 13:48) С... Apr 5 2016, 12:08   esaulenka Цитата(Baser @ Apr 5 2016, 15:08) где гов... Apr 7 2016, 07:03  zltigo QUOTE (Сергей Борщ @ Apr 5 2016, 13:48) .... Apr 7 2016, 07:35 Baser Цитата(esaulenka @ Apr 7 2016, 10:03) При... Apr 7 2016, 08:50 Сергей Борщ Я и мигалку светодиодов на плюсах пишу. В общем, с... Apr 7 2016, 10:49 dxp QUOTE (Сергей Борщ @ Apr 7 2016, 16:49) Я... Apr 8 2016, 05:31 Сергей Борщ может быть дядька Шилдт имел ввиду объектно-ориент... Apr 8 2016, 08:45 Baser Цитата(Сергей Борщ @ Apr 8 2016, 11:45) м... Apr 8 2016, 12:03 ViKo По-моему, в С так же можно использовать структуры,... Apr 8 2016, 09:00 Сергей Борщ QUOTE (ViKo @ Apr 8 2016, 11:00) По-моему... Apr 8 2016, 10:28  ViKo Цитата(Сергей Борщ @ Apr 8 2016, 13:28) В... Apr 11 2016, 05:56 ViKo А как называется свойство, когда функции с одинако... Apr 8 2016, 11:33 zltigo QUOTE (ViKo @ Apr 8 2016, 14:33) А как на... Apr 8 2016, 11:47  Сергей Борщ QUOTE (zltigo @ Apr 8 2016, 13:47) Писани... Apr 8 2016, 12:52   zltigo QUOTE (Сергей Борщ @ Apr 8 2016, 15:52) И... Apr 8 2016, 13:26    Сергей Борщ QUOTE (zltigo @ Apr 8 2016, 15:26) Не пон... Apr 8 2016, 13:45     zltigo QUOTE "Ты видишь суслика? А он есть!... Apr 8 2016, 14:11 Herz Господа! Напоминаю, тема была открыта совсем н... Apr 11 2016, 07:30
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|