티스토리 뷰
// 티스토리가 처음이라 코드를 올리는 과정에 이상하게 올라가진다.. 급하게 소스코드 에디터를 야매로 설치한 탓에 발생한 현상 같다. HTML 특징 같은데.. <stdio.h> 를 넣으면 </stdio.h> 가 자동 추가되는..? 나중에 고쳐야겠다. 혹시나 보시는 분이 계시다면 잡다한 오류는 무시해주세요!
// 나를 위한 메모 : <pre class="brush:cpp"> </pre> 사이에 코드를 넣을 것
extern은 다른 파일의 변수나 함수를 참조하기 위해 사용한다.
static은 한 파일에서 전역변수로 쓰지만, 다른 파일의 참조를 막고 싶은 경우에 사용한다.
#includeint a; // 전역변수는 static이 자동으로 선언되며 static은 초기화를 안해도 0의 값이 들어간다. static int b = 10; extern int c; extern void func(); void main(void) { func(); c++; // 4. Exam02의 int c를 가리키며, 값은 31 -> 32로 변경 a++; // 5. Exam01의 int a를 가리키며, 값은 1 -> 2로 변경 b++; // 6. Exam01의 static int b를 가리키며, 값은 10 -> 11로 변경 printf("a = %d\n", a); printf("b = %d\n", b); printf("c=%d\n", c); system("pause"); }
#includeextern int a; // a는 Exam01.cpp의 전역변수를 사용하겠다. static int b = 20; // static이 붙으면 현 파일에서 전역변수로 사용하지만, 외부의 참조를 막는다. int c = 30; void func(void) { a++; // 1. Exam01의 int a을 가리키며, 값은 0 -> 1로 변경 b++; // 2. Exam02의 static int b을 가리키며, 값은 20 -> 21로 변경 c++; // 3. Exam02의 int c를 가리키며, 값은 30 -> 31로 변경 printf("a=%d\n", a); printf("b=%d\n", b); printf("c=%d\n", c); }
출력
a=1
b=21
c=31
a=2
b=11
c=32
static과 extern이 막 있다면 정확히 어떤 변수를 가리키는지 확인해야겠다.
Exam01에 extern int c가 있지만, Exam02의 int c = 30; 앞에 static을 붙이게 되면 외부 참조를 막기 때문에 컴파일이 되지 않는 점을 주의하자.
static이 각각의 파일에 있고, 변수가 같은 이름이라면 b의 사례와 같이 자신의 변수를 가리킨다.
'Coding > C' 카테고리의 다른 글
little endian과 big endian (0) | 2018.05.22 |
---|---|
포인터의 연산 (0) | 2018.05.22 |
pointer 와 선치, 후치 연산자 (0) | 2018.05.20 |
static 및 extern // case03 (0) | 2018.05.20 |
static 및 extern // case02 (0) | 2018.05.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 영상처리
- pyrUp
- morphology
- hough transform
- Filter
- adaptive thresholding
- mean filter
- pyrDown
- median filter
- morphological operation
- top hat
- bilateral filter
- canny operator
- difference of gaussian
- Line Detection
- direction detection
- black top hat
- gradient
- erosion
- 캐니 엣지
- dilation
- OpenCV
- laplacian of gaussian
- equalizing
- high pass filter
- Low pass filter
- upsampling
- segmentation
- canny
- Sobel
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함