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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> где объявлять переменные? 
:(
    Опции темы
murzzzzz
Дата 13.2.2005, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я тут глянула одну тему, в ней чел один просил глянуть его прогу, че-то там у него не получалось, помогать я конечно не намеревалась smile (уровень еще у меня не тот), так просто ради интереса глянула.. ну кароче, меня заинтересовало то, как он объявил переменные:

#include <conio.h>
#include <stdio.h>
#include <math.h>
double chislo,cifra;
int n,c,ostatok,cifraint;
void main(){
//clrscr();
...

вот видите, он их объявил вне функции, а это ведь даже не константы! это он специально такое сделал, ну я имею ввиду, чоб там типа диапазон доступа больше был, или это так многие объявляют? я просто такое впервые вижу! так все-таки, расскажите мне, неученой, где все-таки наиболее рационально объявлять обычные переменные?
PM MAIL ICQ   Вверх
Wowa
Дата 13.2.2005, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



Цитата(murzzzzz @ 13.2.2005, 16:00)
так все-таки, расскажите мне, неученой, где все-таки наиболее рационально объявлять обычные переменные?


Думаю это зависит от того, какая облась видимости переменных тебе нужна. Переменная объявленая внутри функции видна только в функции, переменная объявленная вне - является глобально и видна в любой функции.
PM WWW   Вверх
murzzzzz
Дата 13.2.2005, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
Думаю это зависит от того, какая облась видимости переменных тебе нужна. Переменная объявленая внутри функции видна только в функции, переменная объявленная вне - является глобально и видна в любой функции.

вот я об этом и говорю! у чела-то прога состоит из одной токо функции мэйн(), да и длинной-то не больше странички, зачем в таком случае объявлять ее вне функции?
PM MAIL ICQ   Вверх
Alexandr87
Дата 13.2.2005, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

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



Конкретно в данном случае практической разницы нет. Переменные объявленные вне функции - будут доступны всем функциям, которые объявлены позже (ниже по коду). Но и соответсвенно будут находиться в памяти напротяжении работы всей программы. Если он объявит их в начале функции main - то разницы никакой не будет - так как функция одна.

Это сообщение отредактировал(а) Alexandr87 - 13.2.2005, 18:18
PM Jabber   Вверх
Marriage
Дата 13.2.2005, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Не знаю, мне (когда я пишу на С) удобно, когда все переменные (кроме переменных цикла), объявляюся в начале функции.


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


Новичок



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

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



хе! а внутри функции красивее смотрицца!! smile
PM MAIL ICQ   Вверх
Nastya
Дата 13.2.2005, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

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



Так, малыши smile
Объявлять перемнные глобально - есть плохой стиль программирорования.
По причине, того, что с разростанием программы Вам сложнее отслеживать их значения. теряется модульность.
В некоторых зыках программирирования ,(например С# ) глобальные переменные были убраны сознательно.

Лучший вариант - область видимости функция.

И перестаньте относится к программированиею работает/не работает. Если прогармма работает она должна быть еще и
1. легко маштобируемой
2. Легко читабельной
и просто красивой.

ИХМО, но ИХМО прошедшее через многие шишки на лбу smile


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
Doc_d0s
Дата 13.2.2005, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Хоть где! Но не стоит увлекаться глобализацией:)
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
chipset
Дата 13.2.2005, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Nastya права smile
Если нужно иметь переменные на протяжении работы всех функций, их следует выделить в отдельный класс - синглетон.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Domestic Cat
Дата 14.2.2005, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 3
Всего: 172



Цитата(chipset @ 13.2.2005, 14:27)
Если нужно иметь переменные на протяжении работы всех функций, их следует выделить в отдельный класс - синглетон.


(долбясь головой о стол) Синглтон не для этого предназначен.


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

PM   Вверх
chipset
Дата 14.2.2005, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Цитата(Domestic @ 13.2.2005, 14:10)

(долбясь головой о стол) Синглтон не для этого предназначен.

Ну не совсем для этого smile Но имхо так будет лучше чем раскидать переменные по файлам и потом искать где у тебя что...


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Domestic Cat
Дата 14.2.2005, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 3
Всего: 172



Есть такой паттерн, называется Mediator...


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

PM   Вверх
murzzzzz
Дата 14.2.2005, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а чо такое Синглтон ? и паттерн Медиатр? smile
PM MAIL ICQ   Вверх
Borisff2003
Дата 14.2.2005, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



murzzzzz, насколько я понимаю ты пока еще учишь сам язык. Помимо синтаксиса, существует еще куча всего. Например проектирование программ, для проектирования используют описанные и устоявшиеся взаимосвязи и ситуации. Это для того чтоб колесо не изобретать, для решения стандартных ситуаций. Синглтон и Медиатор и являются такими проектными решениями. Вообще советую посмотреть про паттерны проектировани, к сожалению не вспомнил ссылку на сайт, где они неплохо описаны (Разумеется есть и книга), тут на форуме точно гдето ссылка была, ну а может люди добрые подскажут smile .

Кстати еще существует куча библиотек, без них тоже грустно


--------------------
Лень, двигатель прогресса
PM MAIL WWW ICQ   Вверх
chipset
Дата 14.2.2005, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



http://rsdn.ru/article/patterns/patterns.xml
Singleton
Ещё есть книжка Александреску, глянь на anatolix.nm.ru


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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