2017-10-13 16 views
0

Je continue d'obtenir une erreur indiquant «utilisation de l'identificateur non déclaré» a «». À ma connaissance, j'ai déclaré «a» égal à 0, donc il devrait être fixé.Utilisation de l'identificateur non déclaré «a» dans C

int numOfBits(short num) 
{ 
    for(int a = 0; num; num >> 1){ 
     a += num & 1; 
    } 
    return a; 
} 
+5

Declare 'un' extérieur pour boucle – PeMaCN

+2

en apprendre davantage sur la variable scope et la visibilité –

Répondre

7

Il est hors de la portée.

int numOfBits(short num) 
{ 
    // Requires C99 for loop variable declaration 
    for(int a = 0; num; num >> 1) { // `a` declared *inside* the 
             // for loop block scope 
     a += num & 1; 
    } 
    return a;       // `a` is no longer in scope 
} 

Il suffit de déplacer la déclaration sur:

int numOfBits(short num) 
{ 
    int a; 
    for(a = 0; num; num >> 1) { 
     a += num & 1; 
    } 
    return a; 
}