Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> использовать ли глобальные переменные? целесообразность использования гл. п. 
V
    Опции темы
nerezus
Дата 26.8.2009, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



А Registry?)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
500mhz
Дата 26.8.2009, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



Любитель

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

пс
nerezus шалом бро ) куда пропал?

Это сообщение отредактировал(а) 500mhz - 26.8.2009, 20:28


--------------------

PM MAIL ICQ   Вверх
nerezus
Дата 26.8.2009, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



500mhz, рутина( хата( жена(
Хотя кому как тебе не знать )
Сейчас работаю с PE-файлом на PHP ) Скоро на хабре статья будет ;)
И почему все такие заказы я собираю (((


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Любитель
Дата 27.8.2009, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(500mhz @  26.8.2009,  20:21 Найти цитируемый пост)
в третьих тема не имеет смысла так как с точки зрения проца , ему фиолетово что глобальные что локальные, на быстродействии не скажеться

Вот и я о том же! И именовать переменные лучше a, b, c, etc. Т. к. во-первых, место на диске (для исходника и объектника) экономим, а к ак следствие - ОЗУ. А итог один...

Цитата(500mhz @  26.8.2009,  20:21 Найти цитируемый пост)
ну во первых то что я привел в качестве примера явно не бинарный код

Но и ещё более явно не исходный. Ассемблерный листинг - это мнемоническое отображение бинарника (игнорируем ассемблерные дефайны, макросы, имена и пр. - не о них то речь!).

Цитата(500mhz @  26.8.2009,  20:21 Найти цитируемый пост)
в четвертых с точки зрения безопасности глобальные безопасней, так как по дефолту они не в стеке, а локальные резервируються (по дефолту) в стеке, так что всегда есть шанс ченить переполнить или запороть

Ну да... Вы писали большие проекты? Безопаснее? Да-да...

А, если серьёзно, тема о другом. Никак не о low-level. smile


--------------------
PM MAIL ICQ Skype   Вверх
500mhz
Дата 27.8.2009, 16:42 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



Любитель
для качественного кодинга думаю необходимо понимать как работает компилер и что он выдает на выходе, а потом уже спорить о переменных.

Цитата

Ассемблерный листинг - это мнемоническое отображение бинарника (с) Любитель

однозначно в мемориз )))))  


--------------------

PM MAIL ICQ   Вверх
nerezus
Дата 27.8.2009, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



500mhz, не согласен.

Какая разница, где находится переменная, если спецификация отвечает на вопрос "что произойдет"? Да никакой.
Гораздо важнее, чтобы код был читаемый.

Никому не нужен код, который работает в 5 раз быстрее и занимает 40 строчек вместо 100, если в нем никто не разбирается кроме автора, который может в любой момент покинуть проект.

Главные факторы -  время разрабюотки и поддерживаемость.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
500mhz
Дата 27.8.2009, 17:28 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



nerezus
ну так и я про то что фиолетово какая переменная локальная или глобальная главное чтоб удобно было

пс
но глобальные "надежней" )))
вот представь есть у тебя функция в ней локальные переменные, и тут ты вызываеш ну к примеру функцию из внешней dll , а dll ну чуть чуть глюковатая (всякое бывает) и портит стек, кусочек стека где лежат твои переменные (у нас же одно с ней адресное пространство значит и стек один),  возвращаеться твой вызов в твою функцию и бабац результат работы совсем не тот что ожидали.



--------------------

PM MAIL ICQ   Вверх
Lazin
Дата 27.8.2009, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Цитата(500mhz @  26.8.2009,  20:21 Найти цитируемый пост)
в третьих тема не имеет смысла так как с точки зрения проца , ему фиолетово что глобальные что локальные, на быстродействии не скажеться
Здесь речь не об архитектуре процессора, а о архитектуре приложения, вам это понятие знакомо?

Цитата(500mhz @  26.8.2009,  20:21 Найти цитируемый пост)
в четвертых с точки зрения безопасности глобальные безопасней, так как по дефолту они не в стеке, а локальные резервируються (по дефолту) в стеке, так что всегда есть шанс ченить переполнить или запороть
правильно написанная программа не портит стек, если она его испортит, то где находятся переменные уже не важно, программа с высокой долей вероятности упадет smile 

Цитата(500mhz @  27.8.2009,  16:42 Найти цитируемый пост)
для качественного кодинга думаю необходимо понимать как работает компилер и что он выдает на выходе, а потом уже спорить о переменных
для качественного кодинга, нужно понимать что такое сайд эффекты и уметь их контролировать smile 

Цитата(500mhz @  27.8.2009,  17:28 Найти цитируемый пост)
вот представь есть у тебя функция в ней локальные переменные, и тут ты вызываеш ну к примеру функцию из внешней dll , а dll ну чуть чуть глюковатая (всякое бывает) и портит стек, кусочек стека где лежат твои переменные (у нас же одно с ней адресное пространство значит и стек один),  возвращаеться твой вызов в твою функцию и бабац результат работы совсем не тот что ожидали

lol smile
а если будут только глобальные переменные, то типа все ОК, да? smile
а как ты напишешь программу, которая будет использовать только глобальные переменные и не будет вызывать ф-ии, если не секрет?

Добавлено @ 20:07
гы гы

Это сообщение отредактировал(а) Lazin - 27.8.2009, 22:15
PM MAIL Skype GTalk   Вверх
500mhz
Дата 27.8.2009, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



Lazin
ты с темы не соскакивай ))
Цитата

а как ты напишешь программу, которая будет использовать только на глобальные переменные и не будет вызывать ф-ии, если не секрет?

и не путай параметры передаваемые в функцию и переменные , а то как то непрофессионально получаеться у тебя ))))

Это сообщение отредактировал(а) 500mhz - 27.8.2009, 21:33


--------------------

PM MAIL ICQ   Вверх
Lazin
Дата 27.8.2009, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 4
Всего: 154



Цитата(500mhz @  27.8.2009,  21:28 Найти цитируемый пост)
ты с темы не соскакивай ))

а ты вопросы не игнорируй smile 

как, весь этот пропитанный невиданным профессионализмом и глубоким пониманием процесса порчи стека пост, доказывает, что глобальные переменные надежней? smile

видимо часто доводилось портить...  smile 

...интересно, на меня так подействовало то, что я посмотрел 2 серии Хауса подряд, или я все время так делаю? lol
PM MAIL Skype GTalk   Вверх
500mhz
  Дата 27.8.2009, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



Lazin
Ты мой герой и мой кумир ))))

мое скромное имхо что глобальные надежней при дефолтовых настройках компилера
но никто не мешает поставить галочку и передавать все не через стек а через регистры )


--------------------

PM MAIL ICQ   Вверх
W4FhLF
Дата 28.8.2009, 06:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



500mhz, я думал ты мебель продаёшь. smile В ИТ вернулся что ли? 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
500mhz
Дата 28.8.2009, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



W4FhLF
а что тута весь ВХ теперь тусит? ))))

да занят был как бы личной жистью, и вот щас появилось время ))))

пс в тему

полюбому mov eax,1 , быстрее и безрпаснее чем mov eax, [ebp-4]  )))


--------------------

PM MAIL ICQ   Вверх
nerezus
Дата 28.8.2009, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 13
Всего: 43



500mhz, полюбому a = 1 быстрее(для программиста) и безопаснее ;)
По поводу ВХ, то не пречислял себя к нему никогда.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
500mhz
  Дата 29.8.2009, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



nerezus
мы тут не про асм vs C  )))

естественно а=1 проще для понимания чем mov eax,1

вопрос в том как а=1 интерпритируеться потом



--------------------

PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1082 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.