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

Проверьте себя. А хорошо ли вы знакомы со switch'ом? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Massey-Omura http://www.cyberforum.ru/cpp/thread29744.html
Люди добрые! Помогите кто чем может в написании прграммы, выполняющей этот алгоритм на С (желательно)...
C++ Окно с активной областью? Написал прогу на С++,рисует в окошке фигуры,работа с классами,перегрузкой операций и так далее...(не суть как важно)....возникли проблемы...надо как то привязать область случайной генерации координат... http://www.cyberforum.ru/cpp/thread29598.html
C++ Я хочу начать самостоятельно учить C/C++
Я хочу начать самостоятельно учить C/C++. Но не знаю с чего начать(перед этим я учил Delphi)!!! Посоветуйте ПЛЗ. И если можно обьясните - чем отличается C от С++ и C++ Builder от Visual C++... СПС
Перенести код считывания wav-файла на Delphi. C++
Вот сам код: typedef struct { char id_riff; long len_riff; char id_chuck; char fmt; long len_chuck;
C++ Программа-бот для игры в покер. http://www.cyberforum.ru/cpp/thread28296.html
Здравствуйте. Сам я будующий программист, учусь на 2 курсе, потихоньку осваиваю С++. У меня вопрос к уже сложившимся и опытным программистам. Возможно ли создать бота для покеррума? Я думаю...
C++ Прочитал Дейтелов. Что дальше? Да, похоже придется всетаки создать тему:) Я прочиталкнигу Харви Дейтела и Пола Дейтела "Как програмить на с++" и хочу узнать, что изучать дальше. Подскажите кто знает подробнее

Показать сообщение отдельно
ZeroIce
6 / 6 / 0
Регистрация: 28.03.2009
Сообщений: 29
13.04.2009, 16:19
Цитата Сообщение от Evg Посмотреть сообщение
Если зачёт тебе ещё не поставлен - я бы не рекомендовал показывать такие вещи этим самым некоторым А то чего доброго назначат тебя козлом отпущения



Современные компиляторы строят switch на переходах только в случае слишком маленького числа альтернатив. Для большого числа альтернатив строится табличка с адресами переходов, а аргумент switch'а по сути является ключом в эту табличку. И теперь скокрость работы кода не зависит от количества альтернатив. Косвенным образом всё-таки зависит, т.к. изменение числа альтернатив ведёт к изменению размера таблицы, что влечёт за собой изменения при работе кэша данных, однако промышленные компиляторы в "боевых" режимах это не учитывают. Исключение составляют случаи, когда публикуются цифры производительности - в этом случае разработчики как правило не стесняются использовать кучу нечестных способов, при этом внешне всё должно выглядеть так, как будто бы это фича
про преподов - все зависит от адекватности человека (некоторые люди уверены что при увеличении int число обратится в 0, а не в минус).

Про компиллеры - о каком речь? Хочу потестить.

Добавлено через 2 минуты 10 секунд
Цитата Сообщение от Humanitis Посмотреть сообщение
Ну не совсем верно,от количества-да,но еще надо брать в расчет размер таблицы которая будет генерироваться.
т.е. если я напишу
C++
1
2
3
4
5
6
7
8
    switch(i)
    {
    case(12):i=23;
        case(13):i=233;
            case(14):i=25;
                case(15):i=26;
                    case(16):i=27;
    }
таблица будет сгенирирована,
а если чуть подправлю
C++
1
2
3
4
5
6
7
8
    switch(i)
    {
    case(12):i=23;
        case(13):i=233;
            case(14):i=25;
                case(15):i=26;
                    case(1666):i=27;//вот тут
    }
то уже нет. Так как компилятор не станет генерить таблицу в 1654 байта
без brake возможно компиллер просто оптимизирует и сведет все к case(1666):i=27; (12, 13, etc смысла не несут)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru