Obtenir une alerte lorsqu'une variable est l'ombre
En général, je veux éviter de code comme ceci:
#include <stdio.h>
int main(int argc, char *argv[]){
int n = 3;
for (int n = 1; n <= 10; n++){
printf("%d\n", n);
}
printf("%d\n", n);
}
Comment puis-je trouver une telle utilisation de variables? Qui signifie, que, dans la même fonction de "plus local" la variable a le même nom qu'un plus variable globale?
C-Standard : C 99
OriginalL'auteur Ystar | 2014-08-06
Vous devez vous connecter pour publier un commentaire.
Gcc et clang l'appui de la
-Wshadow
drapeau qui va avertir sur les variables que l'ombre l'un de l'autre. Par exemple, l'avertissement que je reçois degcc
pour votre code est le suivant:gcc
documents le drapeau ici et dit:Dans Visual Studio, il dirait qu'il n'était pas possible avant, mais semble être corrigé dans les dernières versions.
OriginalL'auteur Shafik Yaghmour
J'ai douté quand j'ai vu pour la première fois, j'avais donc à voir pour moi-même, vous me dites que vous n'obtenez pas ces mises en garde tout de suite?
C'est en supposant que vous utilisez gcc sans -std compilateur drapeau (C90).
Pourriez-vous préciser vos drapeaux du compilateur?
for
de boucles; la redéfinition d'erreur est un effet secondaire. Compiler avec-std=c99
et les erreurs disparaissent. Et vous êtes en supposant que l'OP est à l'aide de gcc.J'étais mais alors que l'OP n'a pas inclus ces détails dans sa question, il a juste demandé si il ya un moyen de trouver des redéfinitions.
Je vais modifier la réponse de toute façon.
OriginalL'auteur rootavish