Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Лично мне крайне не нравится, когда ворох переменных разбросан по программе, и каждый раз надо искать, где создается та или иная переменная. Поэтому переменные я стараюсь по возможности объявлять вначале функции, все вместе - именно для того, чтобы видеть, где они созданы, и понимать, когда они будут удалены.
В смысле "разбросан по программе"? Локальная переменная объявляется и применяется только в том блоке, где используется. А если её приходится искать, значит у вас такая портянка кода, что там чёрт ногу сломит )
Объявление всех переменных в начале функции - это как-раз плохой архаичный стиль. Ещё старина Страструп призывал отказываться от этих олдскульных пережитков старого C в пользу правильного и надёжного кода: объявление переменной непосредственно по месту использования. Разве вы не понимаете, что ваш подход чреват множеством случайных ошибок. Вы хоть инициализируете переменные чем-то? Или так "на авось", а потом разгребая непредсказуемое поведение кода? ) Возможно когда-то это всё и было оправдано ввиду маломощности железа и слабости компиляторов, но уж точно не сейчас.
То в книжки тыкаете то нахваливаете себя, а по сути вопроса так ни чего и не сказали только теория вокруг да около, прочитайте это вам будет понятно... память и процессор, процесор и память, еще про блок питания напишите, он же тоже там используется
Те, кто надо - смысл моих текстов поймут, а горе программистам всегда надо разжевать и дать готовый ответ на блюдечке, они никогда не хотят что-любо понять. Поэтому мои рекомендации, хоть они и написаны в ответ Вам, но предназначаются вероятнее всего не Вам, а тем, кто хочет обучаться и довести свой навык до совершенства.
Я считаю, что есть два типа людей - те, которые увидев грабли на своем пути, только тестом определяют результат наступания на них, и есть те которые зная элементарные законы физики, данные о весе элементов могут заранее сказать результат не наступая на них.
Объявление всех переменных в начале функции - это как-раз плохой архаичный стиль. Ещё старина Страструп призывал отказываться от этих олдскульных пережитков старого C в пользу правильного и надёжного кода: объявление переменной непосредственно по месту использования.
имхо, браво! - убедительно, при использовании переменных в локальной области видимости меньше вероятности попасть на не инициализированную переменную, вернее на значение которое было при предыдущем использовании переменной, компилятор не выдаст уже предупреждение, а поиск таких мелких пакостей - утомительно
по сабжу и тестам, ну как бы ни о чем, больше 5-7% разницы не видно, и не факт, что не изменится поведение в следующих билдах
Те, кто надо - смысл моих текстов поймут, а горе программистам всегда надо разжевать и дать готовый ответ на блюдечке, они никогда не хотят что-любо понять. Поэтому мои рекомендации, хоть они и написаны в ответ Вам, но предназначаются вероятнее всего не Вам, а тем, кто хочет обучаться и довести свой навык до совершенства.
Я считаю, что есть два типа людей - те, которые увидев грабли на своем пути, только тестом определяют результат наступания на них, и есть те которые зная элементарные законы физики, данные о весе элементов могут заранее сказать результат не наступая на них.
Я считаю, что есть два типа людей - с завышенным чсв, те, которые пришли потешить свое самолюбие и у них ни одно реально полезного комментария тут нет по сути вопроса, помоему они даже не вникали в него
и есть те ... не важно это все равно не вы:)
У меня есть подозрение, что автор сего высказывания вообще не в курсе, как работает процессор, память и компилятор... Готов поспорить, что любой ваш код можно ускорить минимум в десятки раз, а то и в сотни. Из-за таких говнокодеров большинство продуктов сейчас безбожно тормозят на мощнейших компьютерах с десятками ядер, а надо-то всего лишь немножко подумать... Но некоторые считают - "Зачем думать? Надо кодить..."
А у меня есть подозрение, что вы так и застряли на уровне " 87 года начиная с ЕС1020 и ZX Spectrum, "
"Говнокодер" это вы, поэтому и наняли 600 человек...
Без обид
PS: ускорьте мой код, ладно, не в сотни, а хотя бы в десятки раз, код в начале темы, в первом посте, если вы не говнокодер конечно, вы же любой мой код можете ускорить в 10-ки или 100-ни раз, давайте...
Я считаю, что есть два типа людей - с завышенным чсв, те, которые пришли потешить свое самолюбие и у них ни одно реально полезного комментария тут нет по сути вопроса, помоему они даже не вникали в него
и есть те ... не важно это все равно не вы:)
А у меня есть подозрение, что вы так и застряли на уровне " 87 года начиная с ЕС1020 и ZX Spectrum, "
"Говнокодер" это вы, поэтому и наняли 600 человек...
Без обид
шесть страниц обсуждений такой пустышки, я тихо фигею ))) деградация форума налицо ))
имхо, браво! - убедительно, при использовании переменных в локальной области видимости меньше вероятности попасть на не инициализированную переменную, вернее на значение которое было при предыдущем использовании переменной, компилятор не выдаст уже предупреждение, а поиск таких мелких пакостей - утомительно
по сабжу и тестам, ну как бы ни о чем, больше 5-7% разницы не видно, и не факт, что не изменится поведение в следующих билдах
А ты в курсе, что объявление локальной переменной без инициализации не гарантирует ее нулевое значение. Ведь она создается на стеке, а там может быть, что угодно.
P.S. вот и я сам впал в грех обсуждения ))по сабжу и тестам, ну как бы ни о чем, больше 5-7% разницы не видно, и не факт, что не изменится поведение в следующих билдах
Ну да, а в идеале там и не должно быть разницы вообще, т.к. ситуация достаточно простая для оптимизации. И даже если тело цикла вынести в отдельную функцию, то будет то же самое, я уверен. Зато паранойикам придётся тащить за собой в функцию этот стринг по ссылке, усложняя код )
Там результаты тестов от запуска к запуску должны плавать на 5-15%, винда не ОС реального времени
А ты в курсе, что объявление локальной переменной без инициализации не гарантирует ее нулевое значение. Ведь она создается на стеке, а там может быть, что угодно.
P.S. вот и я сам впал в грех обсуждения ))))))) , ух ты!
ЗЫ: инициализация при обьявлении переменной это основа написания любого кода с минимум ошибок... тут даже компилятор что то скажет ;)
))))) , ух ты!
ЗЫ: инициализация при обьявлении переменной это основа написания любого кода с минимум ошибок... тут даже компилятор что то скажет ;)
Просто встречал кучу людей, которые думают, что компилятор обнуляет локальные переменные так же, как глобальные.
А варнингов компилятор не выдает