|
남병철.레조 님이 쓰신 글 :
:
: 안녕하세요? 레조입니다.
:
: 도스에서는 int가 16bit 즉, 2byte로 증가합니다.
: 그래서 포인터 선언에서 far라는 키워드를 사용했었고요.
: 윈도우로 넘어오면서 int는 32bit(OS가 32bit이니..)으로 바뀐것입니다.
: OS에서 처리하는 단위가 32비트 운영체제로 바뀌면서 같이 변한것입니다.
: 즉, 도스에서 테스트 한다면 2byte씩 증가할 것입니다.
: 하지만 앞으로의 추세로는 32비트 그리고 64비트 이런 식으로 증가할 것이니
: 그에맞게 int의 크기도 늘어날 것입니다.
: (흠.. 호환성을 위해 int 타입을 썻다고 읽은 기억이 나는데..
: 제대로된 기억인지.. 잘 기억이 않나네요.. -_-;)
:
:
:
: ps.
: 다른 분들의 답변을 기다리며~ ^^
:
:
:
:
: 환타 님이 쓰신 글 :
: : 별것 아닌 것 같지만.. 잘 이해가 안되서요..
: : 수고스럽더라도 답변 부탁드립니다..
: :
: : #include <stdio.h>
: : #include <alloc.h>
: : main()
: : {
: : int*p;
: : int i;
: : p = (int*)malloc(sizeof(int));
: : p =p+ 20;
: : printf("\np : %d 번지\n",p);
: :
: : for (i=0 ; i<6 ; i++)
: : printf("\n %d 번지 : %x", p+i , *(p+i));
: : }
: :
: : 이렇게 해서 컴파일을 해보면...
: :
: : 우선 주소값을 그냥 100이라고 봤을때..
: :
: : 100 번지 : 0
: : 102 번지 : 0
: : 이런식으로 나올꺼라 생각했는데요..
: :
: : 그렇게 안나오네요..
: :
: : 100 번지 : 0
: : 104 번지 : 0
: :
: : int 형으로 포인터를 선언해주면.. 2바이트씩 건너 뛰어야 하는게 아닌지..
: :
: : long형으로 선언해줘도 똑같구요..
: :
: : 그렇다면 int 형으로 선언한거랑 무슨 차이가 있는지..ㅡㅡ;
: :
: : 아래글보니.. c랑 c++이랑 포인터에 약간의 차이가 있다는데..
: :
: : 혹시 이런게 차이가 있는것은 아니겠죠?
: :
: : 아시는 분의 답변 기다리겠습니다..
|