![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Изучаю вопрос, касательно, спецификации классов памяти.
По поводу типа auto, всё понятно. Типичные переменные блоков кода, которые живут только в этих блоках. Это так, в кратце. А вот с register не совсем понятно. Получается, что переменные данного типа хранятся в памяти самого процессора, а не оперативной памяти, так? И это обеспечивает более быструю скорость выполнения расчёта? Для каких ещё типов переменных используется данный тип класса, кроме как счётчики? Как решать, где его применять? Может я рано об этот задумываюсь, но этот вопросы всплыл сразу, при чтении учебника. Сказано, что иногда не хватает количества регистров (я так понял процессора.. Верно?), и тогда компилятор может проигнорировать объявление register. Нынче это актуально? Это сообщение отредактировал(а) hoz - 25.8.2013, 12:52 |
|||
|
||||
disputant |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 28.11.2011 Репутация: нет Всего: 3 |
Вообще-то специалисты (см., например, книги Саттера) утверждают, что лучше register НЕ использовать.
Да и auto с учетом обновления стандарта - тоже... |
|||
|
||||
vol4ek |
|
|||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: нет Всего: 0 |
auto - Применяется только к локальным переменным. Переменные видны только в блоке, в которо они объявляются. По выходу из блока переменная уничтожается. Данный модификатор действует по умолчанию, поэтому явно обычно не употребляется.
register - Предписывает компилятору попытаться разместить данную локальную переменную в регистрах микропроцессора. Также как модификатор auto, данный модификатор действует по умолчанию, поэтому явно обычно не используется. |
|||
|
||||
EnergoHokum |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: нет Всего: 6 |
Эти спецификаторы -- тяжкое наследие прошлого, от которого, впрочем, потихоньку начинают отказываться. Так, ключевое слово auto в стандартах C++11 и выше обозначает уже автоматически выводимый компилятором тип переменной. Ну а про register -- обычно компилятору хватает сообразительности и самому раскидать переменные по доступным регистрам, и мешать-"помогать" ему в этом, пожалуй, не стоит.
|
|||
|
||||
hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Я так и думал. Мои сомнения развеялись этим обсуждением. Всех Спасибо!
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |