2017-10-13 104 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; 
}