| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Подробнее о спецификации классов.. |
| Автор: hoz 25.8.2013, 12:49 |
| Изучаю вопрос, касательно, спецификации классов памяти. По поводу типа auto, всё понятно. Типичные переменные блоков кода, которые живут только в этих блоках. Это так, в кратце. А вот с register не совсем понятно. Получается, что переменные данного типа хранятся в памяти самого процессора, а не оперативной памяти, так? И это обеспечивает более быструю скорость выполнения расчёта? Для каких ещё типов переменных используется данный тип класса, кроме как счётчики? Как решать, где его применять? Может я рано об этот задумываюсь, но этот вопросы всплыл сразу, при чтении учебника. Сказано, что иногда не хватает количества регистров (я так понял процессора.. Верно?), и тогда компилятор может проигнорировать объявление register. Нынче это актуально? |
| Автор: disputant 25.8.2013, 14:12 |
| Вообще-то специалисты (см., например, книги Саттера) утверждают, что лучше register НЕ использовать. Да и auto с учетом обновления стандарта - тоже... |
| Автор: vol4ek 26.8.2013, 03:49 |
| auto - Применяется только к локальным переменным. Переменные видны только в блоке, в которо они объявляются. По выходу из блока переменная уничтожается. Данный модификатор действует по умолчанию, поэтому явно обычно не употребляется. register - Предписывает компилятору попытаться разместить данную локальную переменную в регистрах микропроцессора. Также как модификатор auto, данный модификатор действует по умолчанию, поэтому явно обычно не используется. |
| Автор: EnergoHokum 26.8.2013, 11:52 |
| Эти спецификаторы -- тяжкое наследие прошлого, от которого, впрочем, потихоньку начинают отказываться. Так, ключевое слово auto в стандартах C++11 и выше обозначает уже автоматически выводимый компилятором тип переменной. Ну а про register -- обычно компилятору хватает сообразительности и самому раскидать переменные по доступным регистрам, и мешать-"помогать" ему в этом, пожалуй, не стоит. |
| Автор: hoz 27.8.2013, 11:27 |
| Я так и думал. Мои сомнения развеялись этим обсуждением. Всех Спасибо! |