본문 바로가기

공부/C언어

26. static 구조체

반응형

static 안한 상태의 구조체 

-구조체 주소를 찾아가면 0x36f848 을 보면 10 값을 가지고 있다가 함수에 빠져나가면 값이 사라지는 것을 볼 수 있다.

그러나 static 선언을 하면 ....

 

0xb8a188 주소에서 10(0xa)값을 가지고 있다가 함수를 나와도 값을 그대로 가지고 있는 것을 볼수 잇다.

 

head.h

#include <stdio.h>

typedef struct {
	int a1;
	int b1;
}test_str1;

void sub1(void);
void sub2(void);
void sub3(void);

 

main.c

#include "head.h"

void main(void) {
	sub1();
	sub3();
	sub2();
}

void sub1(void) {
	static test_str1 test_str1;

	test_str1.a1 = 10;

	printf("0x%x\r\n",&test_str1);
	printf("%d\r\n", test_str1.a1);
}
void sub2(void) {
	test_str1 test_str1;

	printf("0x%x\r\n", &test_str1);
}
void sub3(void) {
	printf("test1\r\n");
}
반응형

'공부 > C언어' 카테고리의 다른 글

28. CRC-16 예제  (0) 2020.04.20
27. 구조체 와 함수  (0) 2020.02.04
25. 구조체_구조체 함수_구조체 포인트  (0) 2019.07.26
24. static void 함수  (0) 2019.07.11
23. 포인트 문자열  (0) 2019.07.11