2017-10-13 3 views
0

Ich bekomme immer eine Fehlermeldung "Verwendung von nicht deklarierten Bezeichner 'a'". Nach meinem Wissen habe ich 'a' gleich 0 deklariert, also sollte es gesetzt werden.Verwendung der nicht deklarierten Bezeichner 'a' in C

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

Deklarieren 'a' außerhalb for-Schleife – PeMaCN

+2

lernen die variable scoped und Sichtbarkeit –

Antwort

7

Es ist außerhalb des Geltungsbereichs.

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 
} 

einfach die Erklärung ausrücken:

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