질문이 있습니다. 만약 내가 main 함수 앞에 변수를 정의하면 다음과 같습니다 :주 변수 앞에 변수 정의
#define N 10
나중에이 변수를 변경할 수 없습니까? 이와 같이 :
N=N+1;
N을 더 크게 만들 수 있습니까?
질문이 있습니다. 만약 내가 main 함수 앞에 변수를 정의하면 다음과 같습니다 :주 변수 앞에 변수 정의
#define N 10
나중에이 변수를 변경할 수 없습니까? 이와 같이 :
N=N+1;
N을 더 크게 만들 수 있습니까?
이것은 전역 변수가 아니라 매크로의 정의입니다. 이것을 시도하십시오 :
int i;
int main()
{
i = 10;
return 0;
}
먼저 매크로를 사용하지 마십시오.이를 위해 전역 변수가 필요합니다. 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;
}
희망이
'N'가 아닌 이해와 무엇이 잘못된 것인지를 알려줍니다 변수, 그냥 전처리 매크로 일뿐입니다. –