그러나 당신이 전체 원시 파일에 있는 모든 기능에서 가변에 접근을 필요로 하는 경우에, 이것 또한 정체되는 키워드로, 그러나 모든 기능 이상으로 정의를 둬서 행해지는 깡통. 예를 들면:
#include <stdio.h>
static int num = 10; /* 전체 원시 파일에서 접근 가능하십시오 */
int main(void)
{
printf("The Number Is: %d\n", num);
return 0;
}
그리고 또한 가변이 몇몇 원시 파일을 이루어져 있을지도 모른다, 전체 프로그램에서 접근 가능할 필요가 있는 케이스가 있다. 이것은 요구되지 않을 때 전역 변수이라고 칭하고 피해야 한다.
이것은 또한 모든 기능 이상으로, 그러나 정체되는 키워드 사용 없는 정의를 둬서 행해진다:
#include <stdio.h>
int num = 10; /* 전체 프로그램에서 접근 가능하십시오! */
int main(void)
{
printf("The Number Is: %d\n", num);
return 0;
}
또한 다른 단위에 있는 접근 전역 변수를 위해 사용되는 외부 키워드가 있다. 또한 당신이 변하기 쉬운 정의에 추가할 수 있는 약간 정성자가 있다. 그들의 가장 중요한 것 const이다. const가 변경되지 않기지도 모르기 때문에 정의되는 가변.
보다 적게 상용되는 2개의 수식어구가 더 있다. 휘발성과 기록기 수식어구. 휘발성 수식어구는 읽힐 때마다 컴파일러가 실제로 가변에 접근할 것을 요구한다. 그것은에서 또는 이렇게 그것을 기록기 둬서 가변을 낙관하지 않을지도 모른다. 이것은 목적 등등을 가공하는 multithreading 그리고 개입중단을 위해 주로 사용된다.
기록기 수식어구는 컴파일러가 기록기로 가변을 낙관할 것을 요구한다. 이것은 자동 가변에서만 가능하 많은 경우에 컴파일러는 추려낸 기록기로 낙관할 것이다 가변을 나아질 수 있다, 그래서 이 키워드는 퇴화한다. 변하기 쉬운 기록기를 만들기의 유일하게 직접적인 결과는 그것의 주소가 가지고 갈 수 없다 이다.
다음 페이지에서 주어진 가변의 테이블은 저장 종류의 5 유형의 저장 종류를 기술한다.
테이블에서 우리는 외부 키워드가 2개의 줄에서 둔ㄴ다는 것을 본다. 외부 키워드는 기능에서 다른 곳에 정의되는 정체되는 외부 가변을 선언하는 이용된다.
변하기 쉬운 저장 종류 |
정의하는 것과 같이 |
범위 |
종류 |
키워드 |
Automatic |
Keyword is optional |
Temporary |
In a function |
Local |
Static |
static |
Temporary |
In a function |
Local |
Register |
register |
Temporary |
In a function |
Local |
External |
Optional |
Permanent |
Outside a function |
Global (all files) |
External |
Static |
Permanent |
Outside a function |
Global (one file) |
|