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

Циклы for. Проблема объявления/инициализации - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Управление камерой через USB http://www.cyberforum.ru/cpp/thread11657.html
Существует ли библиотека для управления камерой через USB ? (камера Panasonic DVD-юшная)
C++ Чем отличается Visual C++ от Borland C++? мужики у меня тут вопрос я конечно полный нуб еще:eek: а чем отличается Visual C++: от Borland C++ ? вроде ето один и тотже язык программирования http://www.cyberforum.ru/cpp/thread11200.html
C++ Как работать с реестром?
Привет! Я должен написать программу, которая не разрешает вставлять дискеты, флэшки, диски в комп. Но подобными вещами пока не занимался. Решил начать с того, что прога будет выдавать сообщение, типа "вы вставили диск..." ну или как-то так... только пока не начал. Если кто-то когда-то писал такое, может что-то посоветуете. Или может подскажете, где хорошо описана работа с реестром, я попробую...
C++ Подскажите сайты с Open Source проектами, в которых можно поучаствовать
Люди дайте пожалуйста ссылки на сайты где есть открытые проекты на С++ в которых можно поучаствовать. Чо та гугл молчок).спс.
C++ 16-разрядная подсистема MS-DOS http://www.cyberforum.ru/cpp/thread10534.html
куда надо писать, не знаю, поэтому спрошу тут. ошибка вылазиет не в моей проге, а после того, как последняя скомпилировалась, причем в отдельном окошке: '16-разрядная подсистема MS-DOS Borand c++ for Dos процессор NTVDM обнаружил недопустимую инструкцию. CS:0000 IP:0077 OP:f0 37 05 10 02 Для завершения работы приложения нажмите кнопку "Закрыть".'
C++ Перевести визуализацию WinAmp в полноэкранный режим Как перевести визуализацию винампа в полноэкрнный режим? эмулирование alt+enter и даблклик почемуто не работают HWND h; h=FindWindow("Winamp v1.x", NULL); SendMessage(h,WM_COMMAND,40192,0); h=FindWindow("avswnd", NULL); SetForegroundWindow(h); variant_1 --- SendMessage(h, WM_SYSKEYDOWN, VK_RETURN, 0); --- подробнее

Показать сообщение отдельно
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
31.08.2008, 15:28  [ТС]
Стоп, стоп, стоп. Я не слова не сказал про область видимости переменной. Заметь.
Я объяснил, что не так с этим объявлением. По-моему, вполне доступно. С учетом того, что компилеров куча и настроить их можно по-разному код нужно писать безопаснее. А объявление в заголовке цикла это сделать не позволяет на 100%. Что и требовалось доказать. Такое написание вполне нормально, но есть и свои минусы.

P. S. мне особо без разницы, что где написано, пока я не увижу. Дизассемблерный листинг показывает лучше всего.

P. P. S. ты можешь компилить в студии, а я, например, в G++ (версия 3.1) могу скомпилить такой код:
Код
   for(int i = 0;i<10;i++)
   {
      int i;
   }
надеюсь ты понимаешь, что если бы int i = 0 ,имела внутреннюю область видимости, то этот код бы не компилился с ошибкой redeclaration of "i". Возможность компиляции такой записи говорит сама за себя. Тут даже на уровне с++ переменная внешняя.

Повторюсь. Я не говорю, что это неправильно и так нельзя делать. Это нормально, и так вполне нормально кодить. Просто в жизни все бывает. И полностью рабочий код в одном случае может сработать не так, как хотелось в другом. Надо это учитывать.
Так что, будем объективны. Код нужно писать безопасней, если возможно.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru