В языке программирования C нам не разрешается использовать адрес-оператора (&) с переменными, объявленными с помощью спецификатора класса хранения регистра.
Он дает error: address of register variable ‘var_name’ requested
Но если мы создадим С++-программу и выполним одну и ту же задачу (т.е. используем переменную &
с переменной хранения реестра), она не дает нам никакой ошибки.
например.
#include <iostream>
using namespace std;
int main()
{
register int a;
int * ptr;
a = 5;
ptr = &a;
cout << ptr << endl;
return 0;
}
Выход: -
0x7ffcfed93624
Ну, это должна быть дополнительная особенность С++, но вопрос заключается в различии между хранилищем классов регистров в C и С++.