2017-10-13 60 views
0

我不斷收到一個錯誤,說「使用未聲明的標識符」a「。據我所知,我已經宣佈'a'等於0,所以應該設置。在C中使用未聲明的標識符'a'

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

申報「A」之外環 – PeMaCN

+2

瞭解作用域變量和知名度 –

回答

7

超出範圍。

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 
} 

只需推動宣言指出:

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