![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| murzzzzz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 13.2.2005 Где: Киев Репутация: 1 Всего: 1 |
я тут глянула одну тему, в ней чел один просил глянуть его прогу, че-то там у него не получалось, помогать я конечно не намеревалась
#include <conio.h> #include <stdio.h> #include <math.h> double chislo,cifra; int n,c,ostatok,cifraint; void main(){ //clrscr(); ... вот видите, он их объявил вне функции, а это ведь даже не константы! это он специально такое сделал, ну я имею ввиду, чоб там типа диапазон доступа больше был, или это так многие объявляют? я просто такое впервые вижу! так все-таки, расскажите мне, неученой, где все-таки наиболее рационально объявлять обычные переменные? |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Думаю это зависит от того, какая облась видимости переменных тебе нужна. Переменная объявленая внутри функции видна только в функции, переменная объявленная вне - является глобально и видна в любой функции. |
|||
|
||||
| murzzzzz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 13.2.2005 Где: Киев Репутация: 1 Всего: 1 |
вот я об этом и говорю! у чела-то прога состоит из одной токо функции мэйн(), да и длинной-то не больше странички, зачем в таком случае объявлять ее вне функции? |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 2 Всего: 39 |
Конкретно в данном случае практической разницы нет. Переменные объявленные вне функции - будут доступны всем функциям, которые объявлены позже (ниже по коду). Но и соответсвенно будут находиться в памяти напротяжении работы всей программы. Если он объявит их в начале функции main - то разницы никакой не будет - так как функция одна.
Это сообщение отредактировал(а) Alexandr87 - 13.2.2005, 18:18 |
|||
|
||||
| Marriage |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 4.5.2004 Где: Таганрог Репутация: нет Всего: 2 |
Не знаю, мне (когда я пишу на С) удобно, когда все переменные (кроме переменных цикла), объявляюся в начале функции.
-------------------- Praemonitus, praemunitus |
|||
|
||||
| murzzzzz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 13.2.2005 Где: Киев Репутация: 1 Всего: 1 |
хе! а внутри функции красивее смотрицца!!
|
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
Так, малыши
Объявлять перемнные глобально - есть плохой стиль программирорования. По причине, того, что с разростанием программы Вам сложнее отслеживать их значения. теряется модульность. В некоторых зыках программирирования ,(например С# ) глобальные переменные были убраны сознательно. Лучший вариант - область видимости функция. И перестаньте относится к программированиею работает/не работает. Если прогармма работает она должна быть еще и 1. легко маштобируемой 2. Легко читабельной и просто красивой. ИХМО, но ИХМО прошедшее через многие шишки на лбу -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Doc_d0s |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 15.12.2004 Где: в кресле Репутация: 2 Всего: 3 |
Хоть где! Но не стоит увлекаться глобализацией:)
--------------------
Админ- это вождь Apache'й :) |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Nastya права
Если нужно иметь переменные на протяжении работы всех функций, их следует выделить в отдельный класс - синглетон. --------------------
|
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 3 Всего: 172 |
(долбясь головой о стол) Синглтон не для этого предназначен. -------------------- |
|||
|
||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Ну не совсем для этого --------------------
|
||||
|
|||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 3 Всего: 172 |
Есть такой паттерн, называется Mediator...
-------------------- |
|||
|
||||
| murzzzzz |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 13.2.2005 Где: Киев Репутация: 1 Всего: 1 |
а чо такое Синглтон ? и паттерн Медиатр?
|
|||
|
||||
| Borisff2003 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 198 Регистрация: 26.2.2004 Где: г. Уфа Репутация: 1 Всего: 1 |
murzzzzz, насколько я понимаю ты пока еще учишь сам язык. Помимо синтаксиса, существует еще куча всего. Например проектирование программ, для проектирования используют описанные и устоявшиеся взаимосвязи и ситуации. Это для того чтоб колесо не изобретать, для решения стандартных ситуаций. Синглтон и Медиатор и являются такими проектными решениями. Вообще советую посмотреть про паттерны проектировани, к сожалению не вспомнил ссылку на сайт, где они неплохо описаны (Разумеется есть и книга), тут на форуме точно гдето ссылка была, ну а может люди добрые подскажут
Кстати еще существует куча библиотек, без них тоже грустно --------------------
Лень, двигатель прогресса |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
http://rsdn.ru/article/patterns/patterns.xml
Singleton Ещё есть книжка Александреску, глянь на anatolix.nm.ru --------------------
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |