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

Поиск:

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


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 1
Всего: 56



Lazin, пока у меня нет необходимости, не будет и ответа. 


--------------------
Мой блог
PM MAIL WWW   Вверх
J0ker
Дата 16.4.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



1. #pragma once давно уже пора добавить в стандарт:
src/include/blahblahblah.h
src/include/blah/blahblahblah.h

#include "blahblahblah.h"
#include "blah/blahblahblah.h"

2. #define NUM_OF_DUMMIES 32 - зло

3.
#define NUM_OF_DUMMIES 32
.......
#undef NUM_OF_DUMMIES
добро


--------------------
user posted image
PM MAIL   Вверх
azesmcar
Дата 16.4.2009, 16:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


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

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



И разделил J0ker добро от зла..и воцарился на земле мир и покой, и перестали программисты писать макросы ибо это не кашерно smile 

Откровение от Страуструпа, глава 18, стих 20

Это сообщение отредактировал(а) azesmcar - 16.4.2009, 16:48
PM   Вверх
Rickert
Дата 17.4.2009, 01:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Цитата(J0ker @  16.4.2009,  16:20 Найти цитируемый пост)
2. #define NUM_OF_DUMMIES 32 - зло

3.
#define NUM_OF_DUMMIES 32
.......
#undef NUM_OF_DUMMIES
добро 

Объясните мне хоть кто-нибудь: что автор хотел этим сказать?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Lazin
Дата 17.4.2009, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Rickert @  17.4.2009,  01:39 Найти цитируемый пост)
Объясните мне хоть кто-нибудь: что автор хотел этим сказать? 

в данном примере, макроопределение NUM_OF_DUMMIES, действует на небольшую часть исходного кода, только там, где оно нужно
PM MAIL Skype GTalk   Вверх
Rickert
Дата 17.4.2009, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Цитата(Lazin @  17.4.2009,  07:54 Найти цитируемый пост)
в данном примере, макроопределение NUM_OF_DUMMIES, действует на небольшую часть исходного кода, только там, где оно нужно

Вот я и спрашиваю: что автор хотел сказать?


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
Любитель
Дата 17.4.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



То, что он разрешает использовать макросы, если они не вырываются за пределы файла smile


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


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


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

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



Не нужны совсем.
В Java/.NET же без них обошлись и кучу гигабайтов успешного кода написали )


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


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


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

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



Ээ.. Классы тоже не нужны - в С же их нет и без них кучу гигабайтов успешного кода написали ;)
Извини, но это не аргумент smile Это означает, что можно обойтись без них, означает, что можно хорошо обойтись без них. Но никак не означает, что лучше обходится без них.


--------------------
PM MAIL ICQ Skype   Вверх
Амортизатор2
Дата 7.5.2009, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Глобальные переменные при бесконтрольном их использовании повышают связность кода,  уменьшают гибкость и масштабируемость. Вот это плохой пример их использования:

Код

int a = 0;
...
void foo()
{
//Некоторые вычисления
...
a = some;
}

//Вызов
foo();


Вот тот же пример, сделанный как положено:

Код

int a = 0;

int foo()
{
//Некоторые вычисления
...
return some;
}

//Вызов
a = foo();


Функция foo() - в первом примере грязная, использует деструктивное присваивание переменной a, во втором случае - она чистая, и присваивание делается вне ее, в отдельном грязном коде.
PM MAIL   Вверх
andrew_121
Дата 19.8.2009, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



Цитата(azesmcar @  16.4.2009,  09:10 Найти цитируемый пост)
Андрей Александреску когда писал библиотеку Loki видимо не успел изучить typedef.

Не знаю о какой версии идет речь, но я использую 0.1.17. В ней макросов почти нет. Очень даже удобная вещь. Учитывая что была написана как пример к книге. Даже в некоторых проектах ее встречал.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
500mhz
Дата 26.8.2009, 09:51 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


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

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



Амортизатор2
мистер ну и к чему ваш пример? отдизасмите и найдите 8 отличий )))

вариант 1 будет примерно так
Код


      call foo
      .....
foo:
      //Некоторые вычисления
      mov [varA],eax // если результат вычислений в еах
      ret

varA:
     dd ?



вариант 2 будет примерно так
Код


      call foo
      mov [varA],eax // возврат функции в еах как обычно
      .....
foo:
      //Некоторые вычисления
      ret

varA:
     dd ?







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

PM MAIL ICQ   Вверх
Любитель
Дата 26.8.2009, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



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


--------------------
PM MAIL ICQ Skype   Вверх
17dufa
Дата 26.8.2009, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



не используйте. никогда и нигде.  smile спокойно заменяется Singleton
PM MAIL   Вверх
Любитель
Дата 26.8.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



17dufa, прочитайте недавнюю тему про синглтоны smile 


--------------------
PM MAIL ICQ Skype   Вверх
Страницы: (10) Все « Первая ... 6 7 [8] 9 10 
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

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

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


 




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


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

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