컴퓨터 & 프로그래밍 & 전자공학/C언어
정적 지역 변수 초기화
셀맨1
2016. 8. 4. 11:49
반응형
정적 지역 변수가 사용되는 하나의 용도는 함수가 처음 호출될 때 초기화를 딱 한번만 수행하는 것이다.
inited는 정적 변수이기 때문에 다음번의 호출에서도 그 값을 유지한다. 따라서 초기화 코드는 함수가 처음 호출될 때 한번만 실행된다. 이러한 구조를 사용하여 맨 처음 호출되는 경우에만 초기화를 수행하는 난수 발생 함수 get_random()을 작성하여 테스트하라.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <stdio.h> #include <stdlib.h> #include <time.h> void get_random(void); int main(void) { get_random(); get_random(); get_random(); return 0; } void get_random(void) { static int inited = 0;//한번만 초기화 됨 if(inited==0) { inited=1; srand((unsigned)time(NULL)); } printf("%d\n", rand()); } | cs |
반응형