Форум программистов, компьютерный форум CyberForum.ru

Функция, в функции main() или общие переменные для нескольких функций - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Xipxop
 Аватар для Xipxop
481 / 9 / 2
Регистрация: 28.12.2011
Сообщений: 150
30.10.2012, 20:33     Функция, в функции main() или общие переменные для нескольких функций #1
Делаю мелкую игрушку, в консоли, ради забавы и столкнулся с 1 проблемой:
Невозможно, создавать функцию в функции, вынеся эту функцию за пределы main()
И скомпилировав, написало, что эта функция ссылается на переменные, которые ВНЕ зоны ЕЁ видимости.
Попытавшись, вытащить за пределы main() все переменные, мне написало, что эти переменные, ВООБЩЕ НИКОМУ не принадлдежат!

Так вот в чем вопрос:
Можно ли создать функцию в функции? Если да, то как.
Если нет, то как тогда сделать ОБЩИЕ переменные, для двух( и более) функций, включая main()?

Если есть вопросы, и неясности спросите, уточню.
P.S. Пишу в Dev-C++ (хотя от VS 2008, особо не отличаются...) (доп инфа =))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2012, 20:33     Функция, в функции main() или общие переменные для нескольких функций
Посмотрите здесь:

Написать прогамму в которой в функцию передаються 2 переменные сравниваються и выстраиваються в порядке убывания функция main выводиться на экран C++
C++ Передать в функцию целое число. Функция заменяет его на ближайшее простое число, которое больше или меньше исходного. Вернуться в main( ) и распечатат
Непонимание работы с аргументами для функции main C++
Хочется чтоб функция main узнала число набитое счётчиком в функции god C++
C++ Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все обьявлять.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
31.10.2012, 19:02     Функция, в функции main() или общие переменные для нескольких функций
  #21

Не по теме:

Цитата Сообщение от Xipxop Посмотреть сообщение
Не по теме:
Создается, впечатление, что вы панически избегаете комментариев, и обругиваете Глобалки на пустом месте...
Комменты я одобряю, а вот как сайгак скакать по файлам, ради одной переменной я не желаю. Читайте выше - 6 томов документации и это только "общение" с микроконтроллером, а ведь там еще и интерфейс есть и автоматика. Там черт ногу сломит.

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xipxop
 Аватар для Xipxop
481 / 9 / 2
Регистрация: 28.12.2011
Сообщений: 150
31.10.2012, 19:06  [ТС]     Функция, в функции main() или общие переменные для нескольких функций #22
Раз вам так не нравятся глобалки, (в данном случае их поиск по 120-и файлам)
То сделайте глобалки, для 1-3-ёх файлов! Рассписав, где эти глобалки будут использоваться!
Глобалка для 3-ёх файлов, не так уж и много! И разобраться можно будет!
Casper-SC
 Аватар для Casper-SC
3465 / 1684 / 173
Регистрация: 27.03.2010
Сообщений: 4,824
Записей в блоге: 1
31.10.2012, 19:59     Функция, в функции main() или общие переменные для нескольких функций #23
Что-то прога твоя вылетает с переполнением буфера, как ты вообще её у себя запускал?
C++
1
2
    //Иницилизация массивов
    for (int i = 0; i <= 50; i++)
Удали = рядом с <

Добавь:
C++
1
2
3
4
int main()
{
    setlocale(LC_ALL, "Rus");
}
И пиши по-русски. А не:
C++
1
cout << "Kod knopki: " << ch << "\n";
Добавлено через 4 минуты
И зачем тут вообще глобальные переменные? Создал объект пули, объект класса игры и прочие составные. Читал в книге про использование глобальных переменных, что это прошлый век и их использование создавало кучу проблем для программистов поддерживающих довольно большие проекты.

Тут шла речь, про хороший тон в программировании. Ещё есть такая штука, как форматирование кода (в Visual Studio это комбинация Ctrl + E, D) и адекватные названия классов, методов, переменных на английском и т.д. В общем это Code Style называется.
Xipxop
 Аватар для Xipxop
481 / 9 / 2
Регистрация: 28.12.2011
Сообщений: 150
31.10.2012, 20:01  [ТС]     Функция, в функции main() или общие переменные для нескольких функций #24
Наивно полагать, что если бы у меня работал Русский язык, я писал бы на английском...

Твой способ, как и 2 способа в интернете, для включения Русского языка в консоле Dev-C++, не увенчались успехом...

А насчет кода, я думаю, я в реале накосячил...
Думаю, что тему можно закрывать, в другой теме спрошу, как иметь, массовость массива...
Casper-SC
 Аватар для Casper-SC
3465 / 1684 / 173
Регистрация: 27.03.2010
Сообщений: 4,824
Записей в блоге: 1
31.10.2012, 20:04     Функция, в функции main() или общие переменные для нескольких функций #25
Цитата Сообщение от Xipxop Посмотреть сообщение
Наивно полагать, что если бы у меня работал Русский язык, я писал бы на английском...
Наивно? Да тут пол форума так пишет. Абсолютно не наивно. Я не телепат и не могу узнать, что там у кого не работает.

Цитата Сообщение от Xipxop Посмотреть сообщение
Твой способ, как и 2 способа в интернете, для включения Русского языка в консоле Dev-C++, не увенчались успехом...
Ок. Понятно.
Байт
 Аватар для Байт
13974 / 8805 / 1227
Регистрация: 24.12.2010
Сообщений: 15,949
31.10.2012, 21:23     Функция, в функции main() или общие переменные для нескольких функций #26
Цитата Сообщение от Croessmah Посмотреть сообщение
Вот если мне сейчас начать разбирать Ваш проект - я помру пока найду переменные, где они и как объявлены
Уверяю вас - ничего страшного! Для этого есть такая штука - grep. А я ее (те ее идею, в полном виде с регулярными выражениями она мне не нужна), кое-как приспособил под свои нужды, включил в свой программистский инструментарий, и хлопот не знаю.
Этот grep в том или ином виде есть в любой ИДЕ, но мне показалось, что лучше сделать собственный вариант.
а) Это не сложно (вообще, стоит не лениться и делать свой инструментарий)
б) ты знаешь точно, как он работает,
в) если что-то не устраивает - берешь и модифицируешь
машина поручает человеку работу, которую человек не смог поручить машине


Добавлено через 3 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
Переменная глобальная, а мне, как человеку, который первый раз смотрит на Ваш код не известно что это за переменная и за что она отвечает, где изменяется и тому подобное, я бы хотел, чтобы у меня вся информация о том, что мне нужно была перед глазами.
Тот же grep в помощь!

Добавлено через 3 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
Если брать проект, про который писал Байт, то в каком из 120 файлов мне их искать?
Если я вам передам свой проект для разборки, я вам скажу. В одном. Скажу в каком. В остальных файлах они просто extern (но конечно, со всеми атрибутами)

Добавлено через 4 минуты
Цитата Сообщение от Croessmah Посмотреть сообщение
Банально найти main.cpp или stdafx.hpp проблематично
В Far-е есть Alt-F7. Все найдет в лучшем виде. В Винде тоже есть подобные штуки (не пользуюсь). А еще лучше - свой инструментарий. Не ленитесь (я вот иногда ленюсь) - окупается сторицей!

Добавлено через 16 минут
Цитата Сообщение от Xipxop Посмотреть сообщение
Думаю, что тему можно закрывать,

Не по теме:

Ну зачем же вы так? Только разыгрались...

Да, тема несколько вышла за рамки вашего конкретного вопроса, но от этого, ИМХО, только выиграла. Собрались люди, уважающие чужое мнение, делятся своим, все путем.
Лично мне даже в чем-то помогло. Не то чтобы меня в чем-то убедили, скорее я убеждал. Но теперь я запру свою лень на замок и наконец-то займусь оттачиванием своего инструментария. Давно назрело.
Xipxop
 Аватар для Xipxop
481 / 9 / 2
Регистрация: 28.12.2011
Сообщений: 150
01.11.2012, 15:19  [ТС]     Функция, в функции main() или общие переменные для нескольких функций #27
Про тему закрывать, я это к тому, что ответ, на то как инициировать и использовать глобальные переменные, найден, а все остальное кривизна кода... ,и не перспективность консоли(лучше сделать через интерфейс...)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2012, 16:04     Функция, в функции main() или общие переменные для нескольких функций
Еще ссылки по теме:

C++ алгоритм работы функции,когда функция вызывается в main
Аргументы для функции main() C++
Написать программу, в которой задана произвольная функция вызывается из функции main () C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
01.11.2012, 16:04     Функция, в функции main() или общие переменные для нескольких функций #28
Xipxop,
Всем известные слова: Только разработчику(тот кто написал данный код), ясен смысл, каждой переменной.
Если, вы работаете, в фирме или компании, где над этим кодом будут работать, несколько программистов, то вы будете обязаны(или обязуют), делать везде комментарии! Иначе ваш код никто нормально прочесть не сможет!...
Хрень. Полная. Абсолютная. Код должен быть кристально прозрачен. Под какие-то действительно тяжелые места - комментарии, в остальном код должен читаться и пониматься легко.

Тут-же, опять выступает: При объявлении переменной, делается комментарий, который говорит, об назначении этой переменной, а также смысла принимаемых ею значений. (как у меня: char Kpyla='_' //Куда летит Пуля, _-Вниз, ^-вверх, >-вправо, <-влево...) И вообще, комментарии, хороший тон программистов.
Бред. Куда лучше называть переменные осмысленными именами. Слишком много комментариев - зло. Комментировать очевидные вещи - зло.

В заголовке каждого, файла, или при использовании переменной (2 раза на переменную в файле), писать комментарий, где она была инициирована.
Конечно. А так же где была использована и т.д. Что за бред?
Yandex
Объявления
01.11.2012, 16:04     Функция, в функции main() или общие переменные для нескольких функций
Ответ Создать тему
Опции темы

Текущее время: 20:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru