2017-10-13 22 views
0

「未宣言の識別子 'a'を使用しています」というエラーが表示され続けます。私の知る限り、私は 'a'を0に等しいと宣言しているので、それを設定する必要があります。Cで宣言されていない識別子 'a'の使用

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

宣言「」を外ループ – 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; 
}