Buscar

A classe de armazenamento register serve para especificar que uma variável será muito utilizada e que seria interessante armazená-la no registrador...

A classe de armazenamento register serve para especificar que uma variável será muito utilizada e que seria interessante armazená-la no registrador da CPU do computador. Isso por que o tempo de acesso aos registradores da CPU é muito menor que o tempo de acesso a memória RAM, onde as variáveis ficam normalmente armazenadas. Uma variável da classe register é declarada como mostrado abaixo:
register int y;
Algumas considerações são necessárias sobre a classe register:
• não se pode usar o operador de endereço &. Isso por que a variável está no registrador, e não mais na memória;
• o tamanho da variável é limitado pelo tamanho do registrador, portanto apenas variáveis de tipos pequenos (que ocupem poucos bytes) podem ser definidas como da classe register;
A classe de armazenamento register pode ser entendida como uma dica de armazenamento que damos para o compilador. O compilador é livre para decidir se vai ou não armazenar essa variável no registrador.
Se o compilador decidir ignorar classe register, a variável será definida como sendo da classe auto. Isso significa que não podemos definir uma variável global (static) como sendo da classe register.
A classe de armazenamento register é raramente utilizada. Os compiladores modernos fazem trabalhos de otimização na alocação de variáveis melhores que os programadores.