2015-06-23 5 views
6

Ключевое слово регистра - deprecated and mostly ignored.Другая семантика, связанная с ключевым словом регистра

Но эта небольшая часть его documentation on the msdn заставляла меня удивляться.

Компилятор не принимает запросы пользователей для переменных регистра; [...] Тем не менее, соблюдаются все остальные семантики, связанные с ключевым словом регистра.

Что это за семантика?

ответ

8

Например, в C вы не можете принять адрес объекта, объявленного спецификатором register.

void foo(void) 
{ 
    register int a = 42; 
    &a; // constraint violation 
} 

Другой пример, вы не можете использовать register в объявлении области видимости файла:

register int b = 42; // constraint violation 

int main(void) 
{ 
} 
+0

Другими словами, в то время как MSVC++ исключает выполнения недостаток 'register', вы по-прежнему имеют ограничения времени компиляции. (И нет, нет никаких проблем). – MSalters

 Смежные вопросы

  • Нет связанных вопросов^_^