2013-11-26 4 views
-3

질문이 있습니다. 만약 내가 main 함수 앞에 변수를 정의하면 다음과 같습니다 :주 변수 앞에 변수 정의

#define N 10 

나중에이 변수를 변경할 수 없습니까? 이와 같이 :

N=N+1; 

N을 더 크게 만들 수 있습니까?

+2

'N'가 아닌 이해와 무엇이 잘못된 것인지를 알려줍니다 변수, 그냥 전처리 매크로 일뿐입니다. –

답변

6

이것은 전역 변수가 아니라 매크로의 정의입니다. 이것을 시도하십시오 :

int i; 

int main() 
{ 
    i = 10; 

    return 0; 
} 
1

먼저 매크로를 사용하지 마십시오.이를 위해 전역 변수가 필요합니다. FYI : 컴파일하기 전에 코드의 모든 매크로가 해당 매크로를 사용하는 곳의 실제 값으로 대체됩니다. 매크로를 정의한 다음 다시 시도하고 Macro으로 수정하면 최신 값을 고려합니다. 당신은 당신이 짓을 어떻게 생각

은 다음과 같습니다

#define N (10) 

N = N+1; //will this change N to 11? No, It wont! 

int main() 
{ 
    printf("\nI code rubbish"); 
    return 0; 
} 

당신이 할 수있는 것은 :

#define N (10) 
//Some more macros 
#define N (50) 

int i = 10; 

//Will i++ work here??? No, It wont!!! 
int main(void) 
{ 
    int k = 0; 
    i++; 
    k = N; //What is N here, 10 or 50? It is 50! 
    printf("\nDo not learn to code, instead code to learn"); 
    return 0; 
} 

희망이

관련 문제