본문 바로가기
컴퓨터/C

[C] static 선언

by Begi 2020. 11. 14.
반응형

 

함수 내의 지역 변수는 함수를 빠져 나오면 변수값이 지워지고 다시 함수가 실행될 때는 이전 변수값이 저장되지 않는다. 하지만, 지역 변수에 static을 사용하면 변수값이 지원지지 않고 기억된다.

 

아래 코드에서 i는 1이고, j는 2이고, k는 3이 된다. 만약 변수 c가 static이 아니라면 i, j, k 모두 1이 된다.

 int fun() 
 { 
   static int c = 0; 
   c++; 
   return c; 
 } 
   
 void main() 
 { 
   int i = fun();
   int j = fun();
   int k = fun();
 }

 

전역 변수에 static이 사용될 때는 위와는 전혀 다른 용도로 사용된다. 코드가 여러 파일에 나누어져 컴파일 될 때 static으로 선언된 전역 변수는 변수가 있는 파일에서만 사용할 수 있고 다른 파일의 코드에서 사용하면 컴파일 에러가 난다.

 

반응형

'컴퓨터 > C' 카테고리의 다른 글

가장 큰 숫자 구하는 매크로 함수  (0) 2020.12.22
volatile 선언 사용법  (0) 2020.11.20
[C] 특정 번지의 데이터 읽기 쓰기  (0) 2020.11.12
C의 ABS 매크로 함수  (0) 2020.11.01
구조체 비트 필드  (0) 2020.10.28

댓글