Redeclaration Erreur

J'ai compris la différence entre la déclaration et la définition
Et j'ai été la pratique d'une certaine question, quand j'ai frappé le doute, le code ci-dessous m'a demandé de la liste de l'erreur dans le code.

f(int a,int b)
{
     int a;
     a=20;
     return a; 
}

Pourquoi cette donne nouvelle déclaration erreur de a?
Ne devrait-il pas donner la définition de plusieurs de a parce que dans:

  • f(int a,int b) — ici a est défini droit?
  • et dans le corps de la fonction, int a est défini à nouveau?

Alors pourquoi pas la définition de plusieurs erreur?

Les définitions sont aussi des déclarations. Les multiples déclaration erreur est diagnostiqué avant il vérifie plusieurs définitions
Je pense qu'il est de se demander pourquoi le message d'erreur dit "re-déclaration" au lieu de "définition de plusieurs"
Rohit vous devez inclure le compilateur nom et la version et le message d'erreur exact de la question
J'ai bien aimé l'explication de Matt, merci, même si je savais que cette définition est un sur-ensemble de la déclaration, de Son un comme le fait de frapper la première erreur lors de la compilation et la communication plutôt que de la vérification de l'erreur plus
Bien matt, après la lecture de votre commentaire, j'ai pensé, je reçois la réponse à ma question, mais n'est-il pas que nous pouvons déclarer la variable comme autant de fois que nous voulons ? Donc, bonbons à la Menthe réponse ci-dessous fait beaucoup plus de sens que la déclaration des paramètres de la fonction diffère de la déclaration de la variable locale, de Sorte que le compilateur donne cette erreur.

OriginalL'auteur | 2015-02-16