0
나는 선언하면C 데이터 세그먼트 식별
static int a ;// globally and
static int a ; // locally in one function
그래서 지금의 두 가지 경우가있다 ..
나는 모든 정적 변수를 데이터 세그먼트로 간다 알고 있지만 그들은 어느 하나의 데이터 세그먼트에서 차별화하는 방법 로컬이고 어느 것이 글로벌인가?
나는 선언하면C 데이터 세그먼트 식별
static int a ;// globally and
static int a ; // locally in one function
그래서 지금의 두 가지 경우가있다 ..
나는 모든 정적 변수를 데이터 세그먼트로 간다 알고 있지만 그들은 어느 하나의 데이터 세그먼트에서 차별화하는 방법 로컬이고 어느 것이 글로벌인가?
당신은 실제로 더 갈 수있다 : 당신이 당신의 프로그램에 기여하는 두 개 이상의 별도의 파일에 파일 범위에서
static int a;
을 선언 할 수 있습니다. 다른 범위에있는 이러한 선언은 각각 별도의 변수를 선언합니다. 따라서, 주어진
f.c :
static int a;
int f() {
static int a;
return 0;
}
main.c의 다른 위치에 이름 a
과 연관된 세 개의 정적 변수가
static int a;
int f(void);
int main() {
return f();
}
에스. 올바른 저장소가 각 변수 참조와 연관되도록 정렬하는 것은 컴파일러와 링커의 작업입니다.
그냥지도 파일을보고 우리에게 .. –
정확히 무슨 뜻인지 모르겠지만 "a"는 변수에주는 이름이고, 컴파일러는 주소 만 알고 있습니다. 'global a'를 참조 할 때는 주소가 있고'local a'는 주소가 있습니다. –