Maison > développement back-end > C++ > Quelle est la différence entre \'register\' et \'int\' en C ?

Quelle est la différence entre \'register\' et \'int\' en C ?

Barbara Streisand
Libérer: 2024-10-24 05:09:30
original
613 Les gens l'ont consulté

What is the Difference Between 'register' and 'int' in C  ?

La distinction entre 'register' et 'int' en C

Lors de la déclaration d'une variable en C, les développeurs peuvent utiliser le 'register' mot-clé pour indiquer au compilateur qu'une variable spécifique doit résider dans un registre du processeur plutôt que dans la mémoire. Par exemple, considérons le code suivant :

int x = 7;
Copier après la connexion

et :

register int x = 7;
Copier après la connexion

La différence entre les deux exemples réside dans l'utilisation du mot-clé 'register'. Dans le premier cas, la variable 'x' est déclarée comme un entier et résidera en mémoire. Dans le second cas, le mot-clé 'register' suggère au compilateur qu'il serait avantageux de stocker 'x' dans un registre de processeur.

Cependant, il est crucial de noter que le compilateur a le pouvoir discrétionnaire d'ignorer cela. suggestion. Comme l'affirme Herb Sutter dans "Mots clés qui ne sont pas (ou commentaires par un autre nom)" :

"Un spécificateur de registre a la même sémantique qu'un spécificateur automatique..."

Dans en d'autres termes, l'utilisation de « register » demande simplement au compilateur d'allouer « x » d'une manière similaire au mot-clé « auto », ce qui n'a aucune implication spécifique sur l'emplacement de la variable. Par conséquent, bien que « register » transmette une préférence pour le stockage des registres, sa mise en œuvre réelle est à la discrétion du compilateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal