개발/C

[C] 지역변수 전역변수 쓰레드 공유

yeonlee 2023. 2. 9. 12:56

고수님들에겐 당연하고 시시한 말일수도 있지만 C언어에서 쓰레드를 예시로 어디서 지역변수 전역변수가 접근되는지 여부를 한번 보겠다.

지역변수는 쓰레드간 미공유

void entry(int a) {
	a = 1;
}

void main() {
	int a = 0;
	entry(a);
	printf("%d\n", a);
}

출력은 0이 된다. 지역변수는 단순히 그 값을 가져왔기 때문에 

 

전역변수는 쓰레드간 공유

# define A 0

void entry(int A) {
	A = 1;
}

void main() {
	entry(A);
	printf("%d\n", A);
}

출력은 1이된다.  전역변수는 쓰레드간 공유가 된다.