초기화 없이 전역 변수를 다시 선언할 때, 초기화를 통해 전역 변수를 다시 선언할 때, 전역 변수를 다시 선언하고 두 번 초기화할 때 C와 C++가 어떻게 다르게 동작하는지 살펴보겠습니다. 또한 로컬 변수를 사용하여 위의 조합을 반복합니다.
#include <stdio.h> int var; int var; int main(){ printf("Var = %d",var); return 0; }
Var = 0
#include <iostream> using namespace std; int var; int var; int main(){ cout<<"Var = "<<var; return 0; }
Compilation Error: int var; main.cpp:3:5: note: ‘int var’ previously declared here
Result:- C 초기화 없이 전역 변수를 다시 선언할 수 있습니다. 값은 여전히 0입니다. C++에서는 변수가 다시 선언되었음을 나타내는 컴파일 오류가 발생합니다.
#include <stdio.h> #include <stdio.h> int main(){ int var; int var; printf("Var = %d",var); return 0; }
error: redeclaration of ‘var’ with no linkage
#include <iostream> using namespace std; int main(){ int var; int var; cout<<"Var = "<<var; return 0; }
error: redeclaration of ‘int var’
Result:- C C++이나 C++에서는 초기화 없이 지역 변수를 다시 선언하는 것을 허용하지 않습니다. 두 프로그램 모두 컴파일에 실패했습니다.
#include <stdio.h> int main(){ int var; int var=10; printf("Var = %d",var); return 0; }
Var = 10
#include <iostream> using namespace std; int var; int var=10; int main(){ cout<<"Var = "<<var; return 0; }
main.cpp:7:9: error: redeclaration of ‘int var’ int var;
Result로 전역 변수 재선언: -C에서는 재선언을 허용합니다. 초기화되지 않은 전역 변수입니다. C++ 프로그램 컴파일에 실패했습니다.
#include <stdio.h> int var; int var=10; int main(){ printf("Var = %d",var); return 0; }
error: redeclaration of ‘var’ with no linkage
#include <iostream> using namespace std; int main(){ int var; int var=10; cout<<"Var = "<<var; return 0; }
error: redeclaration of ‘int var
Result를 통해 지역 변수 재선언: - C와 둘 다 C++ 지역 변수는 초기화되지 않은 경우에도 재선언이 허용되지 않습니다. 두 프로그램 모두 컴파일에 실패했습니다
위 내용은 C 프로그램에서 전역 변수 재선언의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!