Remarque: register Le mot clé est déconseillé jusqu'à C++ 17, inutilisé et réservé depuis C++ 17.
Pour parler en général
Le spécificateur de stockage de registre applique à l'origine uniquement aux variables de type int, char ou types de pointeur. Cependant, il s'applique à tout type de variable. En pratique, le registre a un effet significatif sur les variables entières et caractères uniquement. Gardez également à l'esprit que le spécificateur de registre est appliqué aux variables locales et aux paramètres formels d'une fonction (les variables de registre globales ne sont pas autorisées).
En fait, vous n'avez pas à vous soucier de déclarer de nombreuses variables de registre. En cas de trop nombreuses variables de registre, le compilateur les transforme automatiquement en variables non-registre (si la limite est atteinte). Au moins deux variables de registre de type int ou char peuvent être réellement conservées dans le registre CPU.
Cela dépend du compilateur et de l'architecture. Il n'y a pas de réponse "général". Certains compilateurs ignorent complètement le mot clé 'register', même si aucune optimisation n'est activée. –
Cette question n'a de sens que dans le contexte d'une implémentation spécifique. \ – SergeyA
Le spécificateur de stockage de registre s'applique à l'origine uniquement aux variables de type type int, char ou pointeur. –