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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Xipxop
481 / 9 / 2
Регистрация: 28.12.2011
Сообщений: 151
#1

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

30.10.2012, 20:33. Просмотров 1368. Ответов 27
Метки нет (Все метки)

Делаю мелкую игрушку, в консоли, ради забавы и столкнулся с 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( ) и распечатат
Нужна логика программы,общие понятия ,переменные C++
C++ Как менять переменные в main через функцию
Непонимание работы с аргументами для функции main C++
Хочется чтоб функция main узнала число набитое счётчиком в функции god C++
C++ Алгоритм работы функции, когда функция вызывается в main
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
31.10.2012, 19:02     Функция, в функции main() или общие переменные для нескольких функций
  #21

Не по теме:

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xipxop
481 / 9 / 2
Регистрация: 28.12.2011
Сообщений: 151
31.10.2012, 19:06  [ТС]     Функция, в функции main() или общие переменные для нескольких функций #22
Раз вам так не нравятся глобалки, (в данном случае их поиск по 120-и файлам)
То сделайте глобалки, для 1-3-ёх файлов! Рассписав, где эти глобалки будут использоваться!
Глобалка для 3-ёх файлов, не так уж и много! И разобраться можно будет!
Casper-SC
3481 / 1700 / 175
Регистрация: 27.03.2010
Сообщений: 4,848
Записей в блоге: 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
481 / 9 / 2
Регистрация: 28.12.2011
Сообщений: 151
31.10.2012, 20:01  [ТС]     Функция, в функции main() или общие переменные для нескольких функций #24
Наивно полагать, что если бы у меня работал Русский язык, я писал бы на английском...

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

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

Цитата Сообщение от Xipxop Посмотреть сообщение
Твой способ, как и 2 способа в интернете, для включения Русского языка в консоле Dev-C++, не увенчались успехом...
Ок. Понятно.
Байт
Эксперт C
15281 / 9683 / 1437
Регистрация: 24.12.2010
Сообщений: 18,030
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
481 / 9 / 2
Регистрация: 28.12.2011
Сообщений: 151
01.11.2012, 15:19  [ТС]     Функция, в функции main() или общие переменные для нескольких функций #27
Про тему закрывать, я это к тому, что ответ, на то как инициировать и использовать глобальные переменные, найден, а все остальное кривизна кода... ,и не перспективность консоли(лучше сделать через интерфейс...)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2012, 16:04     Функция, в функции main() или общие переменные для нескольких функций
Еще ссылки по теме:

Как написать модульный тест для функции main C++
Аргументы для функции main() C++
C++ Иногда переменные, созданные в main, не видны в цикле for
Написать программу, в которой задана произвольная функция вызывается из функции main () C++
C++ Использование int или void в качестве возвращаемого типа для main()

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

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

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

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

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