C를 공부하다보면 통용범위라는 것을 배우게 된다. 프로그래밍시에 사용되는 변수나 함수에 적용되는 것인데, global하게 적용되는 지, 아니면 local로 블록({와 } 사이)에만 알려 질지, 아니면 현재 있는 파일에만 알려 질지에 대한 내용이다. 즉 신경써야 할 것은 아래와 같은 것이다. 전체에 global 하게 알려 지려면 extern 이라는 keyword를 사용해야 한다. 함수명은 기본적으로 아무것도 붙이지 않아도 extern이 default로 붙은 상태라고 여기면 된다.
1. 함수 : label 밖에 없다.
2. 함수원형 : 함수 원형 선언에서 선언되는 변수명, 변수명이 없어도 상관없다.
3. 파일
4. 블록
==> 대부분 파일 단위와 블록 단위에 신경쓰면 된다.
아래 코드를 보면, i, a가 파일 단위와 블록 단위의 영향을 받는다. 이런 경우 가장 가까운 통용범위가 사용되므로 abc : 레이블 아래에 있는 블록 내부에서는 그 안에 정의된 i, x, a를 사용하고 블록의 바깥쪽에서는 파일 단위의 a와 main 함수 블록 안에 있는 i를 사용하게 된다.
[code type=c]#include <stdio.h>
int a;
int b;
int f(int xx, int yy, int zz);
int main(void)
{
int i, k = sizeof(i);
goto abc;
abc :
{
int i;
int x;
int a;
}
return 0;
}[/code]
받은 트랙백이 없고,
댓글이 없습니다.



글
댓글을 달아 주세요
댓글 RSS 주소 : http://www.cipher.pe.kr/tt/cipher/rss/comment/123댓글 ATOM 주소 : http://www.cipher.pe.kr/tt/cipher/atom/comment/123