main.cpp와
sub.cpp 파일이 있을 때,
main에서 선언한 전역변수(int global_var)가 있을 때
<main.cpp>
int global_var;
void main()
{
global_var = 1;
printf("%d \n", global_var);
}
<main.cpp>에서 선언한 전역 변수를 다른 파일의 코드에서 사용하려면 아래와 같이 하면 됨.
<sub.cpp>
int global_val;
int sub()
{
global_val = 1
printf("[sub]%d \n", global_var);;
}
주의) extern 키워드를 main.cpp에서 안쓰고 sub.cpp에서 선언해도 되지만 둘 다 extern 을 붙이면 빌드 에러가 날 수 있음.
satatic 키워드를 전역 변수에 쓰면 그 전역 변수는 해당 파일에서만 전역 변수로 동작.
즉 extern에 의하여 다른 파일에서는 이용할 수가 없다. 일반적으로 extern을 이용하여 다른 파일에서도 전역 변수에 접근하게 하기 보다는 static 키워드를 이용하여 한 파일에서만 전역 변수로 사용하고, 다른 파일에서는 별도의 함수를 이용하여 값을 변경하거나, 얻는 방법을 이용하는 것이 바람직하다.(즉, 다른 파일에서 초기화 할 수 없다고.. 근데 뭔 init 함수야... 날아간 나의 한시간 반)
출처: https://it4all.tistory.com/25 [쉽게 풀어쓴 IT 이야기]
'삼성전자 알고리즘 > 기타' 카테고리의 다른 글
21. C++ Programming (0) | 2019.07.01 |
---|---|
코딩인터뷰완전분석 : 자외선을 피해가기(BFS) + Heap (0) | 2019.06.16 |
동적할당 (0) | 2019.05.21 |
18. 스레드 (0) | 2019.05.16 |
17. Web Programming(JSP & Servlet) (0) | 2019.05.16 |