реклама на сайте
подробности

 
 
> static variable
Jenya7
сообщение Apr 3 2016, 09:40
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Зачем локальную переменную делать статик? Если мы сохраняем ее в RAM то с тем же успехом ее можно сделать глобальной ну или статик на уровне файла.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Baser
сообщение Apr 5 2016, 10:13
Сообщение #2


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(adnega @ Apr 4 2016, 09:22) *
Но такой подход убивает чистоту функции, а в некоторых языках программирования чистота функции большой плюс.
С многопоточностью будут проблемы у такой функции.

С этим никто не спорит, но нужно решать в каждом конкретном случае, как будет удобней.

Цитата
Функцию с внутренней переменной step не особенно запихнешь в библиотеку для повторного использования.

А вот тут никто вам не запрещает это делать. Более того, в стандартных библиотеках Си полно функций с таким финтом,
в описаниях отдельно пишут, что они "опасные", не реентерабельные, дописывают новые варианты безопасных, но нестандартных функций. Но стандартные функции то уже никуда не денешь sm.gif
Вот пример, функция парсинга текстовых строк strtok

Цитата
Совпадение имен глобальной и локальной переменной тоже лучше не практиковать - попутать что где легче простого.

Одинаковые глобальные и локальные переменные тоже не советую применять.
А вот одинаковые локальные и статические внутри функций - очень даже можно применять.

Цитата(adnega @ Apr 5 2016, 11:04) *
А если все необходимые переменные передавать в функцию (в виде списка или сложного объекта)?

Такой подход тоже имеет место быть, когда есть несколько одинаковых кусков кода обработки.

Цитата(Сергей Борщ @ Apr 5 2016, 11:52) *
Все это хорошо, но локальные данные могут быть и константными (скажем, таблица для перевода номера микрошага в коэф...

Для таблиц и констант можно применять указатели, которые тоже передаются в функцию. Можно передавать также и переменные свойства таблиц (длину, структуру).

Много чего можно придумать, главное чтобы понятность кода не страдала.
А то сам иногда так накручу код для компактности, потом смотрю на тот ужОс, который получился и понимаю, что написание "тупо в лоб методом copy-paste" было бы лучше sm.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 5 2016, 10:48
Сообщение #3


Гуру
******

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



Цитата(Baser @ Apr 5 2016, 12:13) *
Для таблиц и констант можно применять указатели, которые тоже передаются в функцию.
Порой проще и естественней засунуть таблицу в функцию. Например, таблицу перекодировки тетрады в ASCII для вывода чисел в шестнадцатиричном формате. Такая таблица больше нигде не понадобится, какой смысл ее выностить из функции?
Цитата(Baser @ Apr 5 2016, 12:13) *
А то сам иногда так накручу код для компактности, потом смотрю на тот ужОс, который получился и понимаю, что написание "тупо в лоб методом copy-paste" было бы лучше sm.gif
Серега, ты созрел для перехода на C++ sm.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Baser
сообщение Apr 5 2016, 12:08
Сообщение #4


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Сергей Борщ @ Apr 5 2016, 13:48) *
Серега, ты созрел для перехода на C++ sm.gif

Увы, все никак...
Даже осилил почти весь учебник Шилдса, но до конца прочуствовал только одну фразу во введении,
где говорится, что смысл применять плюсы есть только начиная с определенного уровня сложности проектов.

У меня проекты сравнительно простые, поэтому я никак не пойму для чего мне все эти фантики (обертки) которые скрывают реальную сущность объектов.
С переходом с асма на си было все понятно, выгоды очевидны, а тут... laughing.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
- - Baser   При "правильном" программировании все ст...   Apr 3 2016, 14:38
|- - adnega   Цитата(Baser @ Apr 3 2016, 17:38) При ...   Apr 4 2016, 06:22
|- - dxp   QUOTE (adnega @ Apr 4 2016, 12:22) Но так...   Apr 5 2016, 04:55
|- - adnega   Цитата(dxp @ Apr 5 2016, 07:55) Ну, с гло...   Apr 5 2016, 08:04
|- - Сергей Борщ   Цитата(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
||- - 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


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st July 2025 - 10:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01417 секунд с 7
ELECTRONIX ©2004-2016