공부중

[VS2012] 64bit에서의 int - 2 본문

Programing/C, C++

[VS2012] 64bit에서의 int - 2

곤란 2013. 1. 11. 16:15
반응형

 

 

int의 크기가 64bit OS에 맞춰서 변할 줄 알았는데

int의 크기는 똑같다는 결과가 나왔었다

 

하지만 주소의 크기는 변했을꺼라 믿고 다시 Visual Studio 2012를 켯다.

 

소스코드는 다음과 같다.

#include <iostream>

 

int main()

{

    std::cout<<"char 의 크기 : "<<sizeof(char)<<std::endl;

    std::cout<<"short 의 크기 : "<<sizeof(short)<<std::endl;

    std::cout<<"long 의 크기 : "<<sizeof(long)<<std::endl;

    std::cout<<"int 의 크기 : "<<sizeof(int)<<std::endl;

    std::cout<<"float 의 크기 : "<<sizeof(float)<<std::endl;

    std::cout<<"double 의 크기 : "<<sizeof(double)<<std::endl;

    

    return 0;

}

 

물론 출력 결과는 다음과 같다.

 

이번에는 x64로 변경하는 방법을 구글링을 통해서 알아 냈다 ..

x64가 보이는가!?

 

이 x64가 없는 경우는…

 

x64 컴파일러가 설치가 안되거나

추가가 안된 것이다 ..

간혹 x86 전용인줄 알았는데 x64도 있는 경우가 있었다..

(ISO 파일에 x86 써있길래 x86만 있는줄 알았다..)

 

x64가 없으면 이렇게 해봅시다

여기서 구성 관리자로 이동합니다.

 

구성관리자에서 새로 만들기로 이동합니다.

 

새 프로젝트 플랫폼이 나오면 x64를 선택하고 확인 눌러주시면 됩니다.

 

x64가 없으면 …

저도 몰라요 … ㅠㅠ..

다시 찾아서 설치하셔야 될 꺼 같은데…

 

이렇게 x64로 변경하면 …

 

프로젝트 속성에서도 대상컴퓨터가 X64로 자동 변경 됩니다.

 

이제 컴파일을 해봅시다.

 

컴파일 성공!

 

실행 결과!

 

…. MSDN에 나온대로 int의 크기는 4로 변하지 않았군요…

 

그러면 포인터 형의 크기들을 살펴 봅시다

소스코드는 다음과 같습니다.

 

실행 결과(x86)

x86에서 포인터 형의 크기는 4로 나옵니다.

 

출력결과(x64)

x64에서 정확하게 포인터형들의 크기는 8byte로 나오는군요.

 

다른 OS 리눅스 유닉스 등등과 다른 컴파일러들은 제가 다뤄보질 못했지만

일단 MS의 Visual Studio에서는 포인터 형들만 변했다는 사실을 알았습니다...

 

MSDN의 글 대로 Visual C++에서 int는 4byte로 고정 되어있는 사실을 알았습니다.


 

반응형