LINUX.ORG.RU

История изменений

Исправление Iron_Bug, (текущая версия) :

я это не рассматриваю, как переменную. регистр - это строго определённая область в памяти. иногда ещё в определённом сегменте и регистры переключаются вместе с сегментами. но это детали. это специальная вещь, а не переменная (даже volatile).

а переменная - это чисто программистская штука, место для хранения каких-то временных данных программы во время исполнения.

и да, я всегда избегала глобальных переменных. и это всегда рекомендовали делать. по простым причинам: многопоточность, работа из прерываний и прочее такое. это просто небезопасно. глобальность не даёт никаких гарантий. а вот накосячить с доступом к глобальным переменным - проще простого. и потом хрен найдёшь такие косяки. поэтому лучше не надо. если это статический адрес с регистром - достаточно макроса. если это данные - лучше их передавать по адресу, чтобы было явно понятно, где они меняются.

и, как я сказала, удобно писать макросы для регистров. иногда для пересборки проекта под другую модель контроллера достаточно только поменять хэдер. это удобно при ведении проектов с апгрейдами железа.

Исходная версия Iron_Bug, :

я это не рассматриваю, как переменную. регистр - это строго определённая область в памяти. иногда ещё в определённом сегменте и регистры переключаются вместе с сегментами. но это детали. это специальная вещь, а не переменная (даже volatile).

а переменная - это чисто программистская штука, место для хранения каких-то временных данных программы во время исполнения.

и да, я всегда избегала глобальных переменных. и это всегда рекомендовали делать. по простым причинам: многопоточность, работа из прерываний и прочее такое. это просто небезопасно. глобальность не даёт никаких гарантий. а вот накосячить с доступом к глобальным переменным - проще простого. и потом хрен найдёшь такие косяки. поэтому лучше не надо. если это статический адрес с регистром - достаточно макроса. если это данные - лучше их передавать по адресу, чтобы было явно понятно, где они меняются.