|
|
Другие темы раздела | |
C++ Управление камерой через USB
https://www.cyberforum.ru/ cpp/ thread11657.html Существует ли библиотека для управления камерой через USB ? (камера Panasonic DVD-юшная) |
C++ Чем отличается Visual C++ от Borland C++? мужики у меня тут вопрос я конечно полный нуб еще:eek: а чем отличается Visual C++: от Borland C++ ? вроде ето один и тотже язык программирования |
C++ Как работать с реестром? Привет! Я должен написать программу, которая не разрешает вставлять дискеты, флэшки, диски в комп. Но подобными вещами пока не занимался. Решил начать с того, что прога будет выдавать сообщение, типа "вы вставили диск..." ну или как-то так... только пока не начал. Если кто-то когда-то писал такое, может что-то посоветуете. Или может подскажете, где хорошо описана работа с реестром, я попробую... https://www.cyberforum.ru/ cpp/ thread10544.html | C++ Подскажите сайты с Open Source проектами, в которых можно поучаствовать Люди дайте пожалуйста ссылки на сайты где есть открытые проекты на С++ в которых можно поучаствовать. Чо та гугл молчок).спс. https://www.cyberforum.ru/ cpp/ thread10540.html |
C++ 16-разрядная подсистема MS-DOS куда надо писать, не знаю, поэтому спрошу тут. ошибка вылазиет не в моей проге, а после того, как последняя скомпилировалась, причем в отдельном окошке: '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); --- https://www.cyberforum.ru/ cpp/ thread10448.html |
C++ Обработка wave файлов Если у кого исходники или хотя бы идеи по поводу работы с wave файлами средствами С++.К примеру разбиение данных по 20мс,нахождение периода основного тона на этих участках,замещение следующего фрагмента предыдущим.Буду признателен любой помощи! https://www.cyberforum.ru/ cpp/ thread9750.html |
Проблема с фонтом при старте программы C++ Привет всем. Проблема в следующем. Написал программу на С++ принцип действия в следующем: Имеются два комбобокса в одном из которых я выбираю сервер а в другом выбираю язык русский или английский. При выборе в комбобоксе конкретного сервера в ЛистБоксе приносит список баз, щелкая на которых в ДБГриде приносит результат определенного селекта.Меняя язык в комбобоксе меняется инфа в ДБГриде. Когда... |
C++ Анализ данных XML-документа
https://www.cyberforum.ru/ cpp/ thread9333.html Помогите с программой. Нужно считать числовые данные(цена, частота мин, частота макс) из XML-документа в двухмерный массив и записать этот массив в текстовый файл. Вот XML <?xml version="1.0" encoding="UTF-8"?> <headphones id="id1"> <title>Technics</title> <Characteristic amount="24" unit="доллар">Цена</Characteristic> <Characteristic amount="20" unit="герц">Частота мин</Characteristic>... |
C++ Функция wait Доброго времени суток. Передо мной встал вопрос на который я не могу дать ответ, может ктонибудь знает. Вопрос: определить, что должно происходить, если вызов wait функции возвращает -1. https://www.cyberforum.ru/ cpp/ thread9194.html |
Отслеживание действий мыши C++ Всем привет, хотелось бы сделать хук на мышь, не подскажете литературу или методы существующие Спасибо |
C++ Графическая библиотека GD
https://www.cyberforum.ru/ cpp/ thread8907.html Кто-нибудь работал с сабжем? У меня проблема. Глюки с ф-ей gdImageGetPixel() - каждый раз при перезапуске программы она возвращает разные значения одних и тех же пикселов. Не могу понять, в чём дело... Добавлено через 21 час 6 минут Неужели никто не работал с этой либой? |
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
0 | |
Циклы for. Проблема объявления/инициализации - C++ - Ответ 5182331.08.2008, 03:42. Показов 9076. Ответов 23
Метки (Все метки)
Эх, так и придется создавать новую тему. А то, блин, интересно ж...
Итак, я тут в недавней теме утверждал, что блок инициализации цикла for является внешним по отношению к его внутреннему блоку (блоку команд, то бишь). CheshireСat's евангелие не соглашается со мной и предлагает открыть для этой байды тему. ОК. Открыл. С чего возник базар? С того, что нужно, все-таки, выяснить чем же особенны такие конструкции (с объявлением переменных в заголовке цикла): Код
for (int i = 0; i < 5; i++) { } Код
#include <iostream> using namespace std; void main() { int i = 1; for (int i = 0; i < 10; i++) { } } Код
int i = 1; 0041138E C7 45 F8 01 00 00 00 mov dword ptr [i],1 инициализируем i for (int i = 0; i < 10; i++) 00411395 C7 45 EC 00 00 00 00 mov dword ptr [i],0 инициализируем i ту, что в заголовке цикла 0041139C EB 09 jmp main+37h (4113A7h) проверяем условие выхода из цикла(cmp dword ptr [i],0Ah) 0041139E 8B 45 EC mov eax,dword ptr [i] три следующие команды - инкремент 004113A1 83 C0 01 add eax,1 004113A4 89 45 EC mov dword ptr [i],eax 004113A7 83 7D EC 0A cmp dword ptr [i],0Ah проверка условия выхода 004113AB 7D 02 jge main+3Fh (4113AFh) уходим из цикла { } 004113AD EB EF jmp main+2Eh (41139Eh) цикл Уберем инициализацию объявление из заголовка. Код
#include <iostream> using namespace std; void main() { int i = 1; for (i = 0; i < 10; i++) { } } Код
int i = 1; 0041138E C7 45 F8 01 00 00 00 mov dword ptr [i],1 for (i = 0; i < 10; i++) 00411395 C7 45 F8 00 00 00 00 mov dword ptr [i],0 0041139C EB 09 jmp main+37h (4113A7h) 0041139E 8B 45 F8 mov eax,dword ptr [i] 004113A1 83 C0 01 add eax,1 004113A4 89 45 F8 mov dword ptr [i],eax 004113A7 83 7D F8 0A cmp dword ptr [i],0Ah 004113AB 7D 02 jge main+3Fh (4113AFh) { } 004113AD EB EF jmp main+2Eh (41139Eh) Теперь можно провести небольшой эксперимент: Код
#include <iostream> using namespace std; void main() { int i = 1, *j; for (i = 0; i < 10; i++) { j = &i; } cout<<"J = "<<*j<<" I = "<<i<<endl; cin.get(); } J = 10 I = 10. А теперь засунем новую переменную В БЛОК цикла: Код
#include <iostream> using namespace std; void main() { int i = 1, *j; for (i = 0; i < 10; i++) { int i; i++; j = &i; } cout<<"J = "<<*j<<" I = "<<i<<endl; cin.get(); } J = 1 I = 10 И последнее: Код
#include <iostream> using namespace std; void main() { int i = 1, *j; for (int i = 0; i < 10; i++) { j = &i; } cout<<"J = "<<*j<<" I = "<<i<<endl; cin.get(); } J = 10 I = 1 Ах ты батюшки. Не обнулилась. А не сделала она этого потому что объявлена как вне блока цикла. На уровень выше самого блока команд цикла. И в исполнении цикла строка int i = 0 никакого участия не принимает. Абсолютно. Если совсем скучно, то можно заглянуть в "Бархатный путь С++": Дабы, это выглядело, как настоящая тема, вопрос: Где я ошибся? Кто, что думает по этому поводу? Может, в объявлении/инициализации в заголовке цикла нет ничего, на что стоило бы обращать внимание? P. S. вот именно, блин, поэтому такое использование может принести сюрпризы (это ж какую конструкцию надо придумать), если не знать, как оно работает. Я не утверждаю, что так делать нельзя, или плохо. Так делать можно. Ничего страшного в этом нет абсолютно. Просто надо иметь ввиду. P. P. S. CheshireСat, что на это скажет твое евангелие? Добавлено через 28 минут 25 секунд Кстати, как мне сразу в голову не пришло. Если мы уберем int i; внешний и оставим только в заголовке то: Код
for (int i = 0; i < 10;i++) 0041138E C7 45 F8 00 00 00 00 mov dword ptr [i],0 00411395 EB 09 jmp main+30h (4113A0h) 00411397 8B 45 F8 mov eax,dword ptr [i] 0041139A 83 C0 01 add eax,1 0041139D 89 45 F8 mov dword ptr [i],eax 004113A0 83 7D F8 0A cmp dword ptr [i],0Ah 004113A4 7D 02 jge main+38h (4113A8h) { } 004113A6 EB EF jmp main+27h (411397h) В итоге мы получили ту же внешнюю по отношению к блоку операторов цикла переменную. Даже с аналогичным адресом То есть, на уровне ассемблера код не меняется. Тот же самый листинг получается из: Код
. . . int i; for (i = 0; i < 10;i++) { . . . Вернуться к обсуждению: Циклы for. Проблема объявления/инициализации C++
3
|
31.08.2008, 03:42 | |
Готовые ответы и решения:
23
Правила объявления инициализации Отличие объявления, определения и инициализации проблема в коде задачи на циклы Когда выделяется память под переменные - во время объявления или инициализации |
31.08.2008, 03:42 | |
31.08.2008, 03:42 | |
Помогаю со студенческими работами здесь
0
Проблема с ADWORDS: при активности кампании объявления не показываются.. Циклы. Написал программу, но проблема в том, что цикл пробегает всего один раз... Циклы с условием, циклы с переменной, вложенные циклы Циклы. Напечатать числа в виде таблицы, используя только циклы |