메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 C++ 프로그래밍

뇌를 자극하는 C++ 프로그래밍 질의응답 게시판입니다.

72쪽 예제 5-1 질문좀 드립니다.

2009-09-09

|

by 킁킁탐정

3788

#include

int main()
{   //변수의 정의

        short int si;  
        unsigned short int usi;
        int i;
        unsigned int ui;
        long int li;
        unsigned long int ul;

        si = 40000 or 70000 or 22억;
        i = 40000 or 70000 or 22억;
        li= 40000 or 70000 or 22억;
        usi = 40000 or 70000 or 22억;
        ui = 40000 or 70000 or 22억;
        ul = 40000 or 70000 or 22억;
    
        return 0;

}



라고 써놓고 처음에 값을 40000으로 했을땐 빌드창(?)에 error(warning)이  



cpp(13) warning C4309: = : 상수 값이 잘립니다.




라고 딱 뜨는데

값을 70000으로 하면




cpp(13) warning C4305: = : int에서 short(으)로 잘립니다
cpp(13) 상수 값이 잘립니다.
cpp(16)int에서 unsigned short(으)로 잘립니다.
cpp(16)상수 값이 잘립니다.



라고 뜹니다.

그리고 그후  값을 22억을 대입해도  똑같이

cpp(13) warning C4305: = : int에서 short(으)로 잘립니다
cpp(13) 상수 값이 잘립니다.
cpp(16)int에서 unsigned short(으)로 잘립니다.
cpp(16)상수 값이 잘립니다.

라고 뜹니다.

혹시 뭔가 잘못됐나 해서 출력이 되도록

#include
using namespace std;
int main()
{   //변수의 정의

        short int si;  
        unsigned short int usi;
        int i;
        unsigned int ui;
        long int li;
        unsigned long int ul;

        si = 40000 or 70000 or 22억;        
           i = 40000 or 70000 or 22억;
        li= 40000 or 70000 or 22억;
        usi = 40000 or 70000 or 22억;
        ui = 40000 or 70000 or 22억;
        ul = 40000 or 70000 or 22억;
    

        cout << si <<"\n";
        cout << i <<"\n";
        cout << li <<"\n";
        cout << usi <<"\n";
        cout << ui <<"\n";
        cout << ul <<"\n";

        return 0;

}

했는데

에러 메세지랑 틀리게 예제에서 옆에 ok이라고 한것만 입력한값대로 나오더군요.

그렇다면 제가 입력은 제대로 한거 같은데.....

왜 저렇게 error 메세지가 뜨는건가요?

왜 입력한값대로 나오지 않는 구문에 대해선 warning 메세지가 안뜨는걸까요?
댓글 입력
자료실