결국 16비트때 사용하던 포인터 인데..
현재의 32 환경에서는 그냥 일반 포인터와 같은 의미 입니다.
자세히 아실 필요 없을 거에요.
컴퓨터 구조섭을 좀 들으셨으면 이해에 도움이 될라나...
쉽게 말해.. 구닥다리 입니다. 16비트 시절용.
[far 포인터 변수와 near 포인터 변수, 그리고 huge 포인터 변수]
IBM-PC의 주소는 2가지가 존재하는데, 우선 가장 많이 사용되는 near 포인터의 경우에는 오프셋 값만 주소로 갖게 된다. 이 경우 세그먼트 주소는 고정되어 있음을 의미한다. 따라서 near 포인터 변수의 크기는 16비트가 되며 현재 고정된 세그먼트 주소로부터 64K 바이트 이내의 값만 주소로 갖게 된다. 반면에 far 포인터 변수는 세그먼트 주소와 오프셋을 각각 16비트씩 값으로 갖는다. 따라서 far 포인터 변수는 32비트의 크기를 갖게 되며 주기억 장치의 어느 곳이나 주소를 값으로 가질 수 있다. huge 포인터는 far 포인터와 유사하나 오프셋의 값이 항상 0에서 15사이의 값을 갖도록 만든 것이 다르다. 이 주소를 사용하면 주기억 장치의 한 장소 중에서 주소가 딱 하나로 결정되는 장점이 있다.
포인터를 far 또는 near, huge로 선언하고자 할 때에는 다음과 같이 변수 이름과 데이터 유형 사이에 키워드를 집어 넣으면 된다.
int near *ip; /* 포인터 앞에 아무것도 없을 경우에는 사용하는 */
char far *cp; /* 메모리 모델에 의해 near, far, huge 등이 결정된다 */
float huge *fp;
현재의 32 환경에서는 그냥 일반 포인터와 같은 의미 입니다.
자세히 아실 필요 없을 거에요.
컴퓨터 구조섭을 좀 들으셨으면 이해에 도움이 될라나...
쉽게 말해.. 구닥다리 입니다. 16비트 시절용.
[far 포인터 변수와 near 포인터 변수, 그리고 huge 포인터 변수]
IBM-PC의 주소는 2가지가 존재하는데, 우선 가장 많이 사용되는 near 포인터의 경우에는 오프셋 값만 주소로 갖게 된다. 이 경우 세그먼트 주소는 고정되어 있음을 의미한다. 따라서 near 포인터 변수의 크기는 16비트가 되며 현재 고정된 세그먼트 주소로부터 64K 바이트 이내의 값만 주소로 갖게 된다. 반면에 far 포인터 변수는 세그먼트 주소와 오프셋을 각각 16비트씩 값으로 갖는다. 따라서 far 포인터 변수는 32비트의 크기를 갖게 되며 주기억 장치의 어느 곳이나 주소를 값으로 가질 수 있다. huge 포인터는 far 포인터와 유사하나 오프셋의 값이 항상 0에서 15사이의 값을 갖도록 만든 것이 다르다. 이 주소를 사용하면 주기억 장치의 한 장소 중에서 주소가 딱 하나로 결정되는 장점이 있다.
포인터를 far 또는 near, huge로 선언하고자 할 때에는 다음과 같이 변수 이름과 데이터 유형 사이에 키워드를 집어 넣으면 된다.
int near *ip; /* 포인터 앞에 아무것도 없을 경우에는 사용하는 */
char far *cp; /* 메모리 모델에 의해 near, far, huge 등이 결정된다 */
float huge *fp;
'Computer_language > C' 카테고리의 다른 글
Select를 이용한 채팅 서버 (0) | 2009.01.12 |
---|---|
소켓 주소 구조 (0) | 2009.01.12 |
바이트 오더(Byte Order)에 대해서... (0) | 2009.01.12 |
[Transformation] htons [출처] [Transformation] htons|작성자 임종배 (0) | 2009.01.12 |
[Transformation] htonl [출처] [Transformation] htonl|작성자 임종배 (0) | 2009.01.12 |