12
votes

Quelle est la différence entre les variables locales Auto int A et INT A?

Utilisation de cas d'identificateur de classe de stockage Auto? Je comprends que toutes les variables locales sont automatiques par défaut. Mais quelle est la différence en écrivant explicitement auto int A?

c

1 commentaires

4 Réponses :


11
votes

Il n'y a strictement aucune différence.

{
   int a;
   /* ... */   
}


3 commentaires

Je pourrais trouver ceci tous les endroits où alors cela signifie qu'il n'y a pas de signification particulière du mot-clé auto.


@vkesh qui est correct pour C. " auto " signifie "non statique ", qui correspond à la valeur par défaut. Il avait plus d'influence dans son prédécesseur B. EN.Wikipedia.org/wiki/b_(Programming_language)


Sont-ils équivalents ou exactement les mêmes?



2
votes

Il y a deux cas possibles:

  1. auto est la valeur par défaut et ajoute explicitement que le mot-clé n'offre rien
  2. auto n'est pas autorisé (par exemple, sur une variable globale) Auquel cas Ajout Auto Empêche le code de compiler

2 commentaires

Voulez-vous dire par le deuxième cas possible que si nous ajoutons Auto à la variable globale empêche la variable globale définie ?? Si oui, quelle que soit l'usecase si vous savez quelque chose?


@vkesh: Je dis si vous essayez de spécifier auto pour une variable globale, le code ne compilera pas (avec un compilateur fonctionnant correctement). En ce qui concerne "quel est le cas d'utilisation", mon point est qu'il n'y en a pas.



2
votes

Dans la journée moderne C (C89, C99, C11), le mot-clé code> code> est redondant. Autre que faire de l'intention explicite ("Il s'agit d'une variable non statique, et je veux dire ça!"), Il ne sert plus de but. Il s'agit d'un reste de l'histoire de C, reporté de B, mais beaucoup comme le mot clé code> code> est devenu pratiquement obsolète.

Je l'ai utilisé une fois dans ma vie. C'était dans une entrée de la COCCC conjointement avec Implicit Int: P>

 drive () { auto motive; ... }


0 commentaires

0
votes

Il y a peu de différence de bits entre une variable locale et une variable automatique.

Nous pouvons faire une variable locale int A = 20; à n'importe quelle variable de classe de stockage comme auto int A = 20; ou statique int A = 20; mais une fois quand nous spécifions toute variable à auto comme auto int A = 20; alors il ne deviendra jamais autre classe de stockage comme statique ou enregistrez etc. Nous ne pouvons pas écrire Comme Statique Auto int A A = 20; .autres choses sont exactement identiques comme la mémoire de la mémoire dans le segment de pile. Vous trouverez ci-dessous l'exemple de la variable automatique qui génère la même sortie.

pour une variable automatique. xxx

pour une variable locale. xxx


0 commentaires