<책 서술>
int main(void)
{short num1=15, num2=25;
short num3= num1+num2; //num1과 num2가 int형으로 형변환
}
-------------------------------------------------------
num1 + num2가 연산중에 int형으로 형변환 되어서 계산 된다는것은 아는데
후에 다시 short형으로 돌아와야 하잖아,
그과정이 어떻게 되는거야?
<책 서술>
int main(void)
{short num1=15, num2=25;
short num3= num1+num2; //num1과 num2가 int형으로 형변환
}
-------------------------------------------------------
num1 + num2가 연산중에 int형으로 형변환 되어서 계산 된다는것은 아는데
후에 다시 short형으로 돌아와야 하잖아,
그과정이 어떻게 되는거야?
니가 쓰고 있는 컴파일러한테 물어봐야지 ㅂㅅ새낀가? 언어 버전도 없이 지 컴파일러가 어떻게 작동할지 예측하라고 하네 ㄷㄷㄷ
c 인뎅
ㅂㅅ새끼 C가 한둘인가 에휴... 땔감새끼
컴파일러는 visual c++ 2019쓰고 있엉 책은 윤성우 열혈 c 프로그래밍이야
상식적으로 생각이란 거를 좀 해봐라.. short + short를 연산하는데 이게 결과를 short 공간 준비하면 되겠냐? 안되겠냐? 더 큰 데이터타입으로 결과담울 임시공간 준비하고 여기까진 예외 안나오게 진행해야겠지.. 그리고 결과담을 변수에 넣을 때 예외 발생시키든가 해야겠지
음 내가 배우고 있는거는 윤성우 열혈 c 프로그래밍이야,
연산을 할때 integal promotion을 알려주는 파트고, num1+num2연산에서 num1과 num2 각각을 short형에서 int형으로 형변환을하고 연산을 처리한다고 서술하고 이까지는 나도 이해 했는뎅 그 이후에 num1이랑 num2가 int형으로 유지되나 short형으로 다시 형변환 되나 궁금해서, 후에 sizeof 연산자를 붙여서 봤는데 num1, num2가 short형 바이트를 가지더라고 그래서 연산이 끝나고 num1 num2가 short로 내려간다는 것을 인지했고, 이 과정이 메모리상에서 어떻게 작동하나 궁금한거양
ㅂㅅ 같은 말 반복하네... 니가 생각 유추라는 걸 못하는 지능같아서 알려줄게 num1 num2에 short의 MAX값을 넣고 디버깅 돌려보면 니가 원하는 결과 니눈으로 직접 목격할 수 있음... 게으른건지 멍청한건지... 이런 식으로 컴파일타임 에러인지, 런타임 에러인지 확인하고 니가 쓰는 언어 명세서 읽어서 재확인해라
너가 하는말은 알겠는데 너와 내가 말하는 전제가 다른거 같아, 코딩 5일차가 강의와 책에서 이해한 배움의 전제에선 66num3=num1+num2가 연산안에서 num1이랑 num2가 "각각" int형으로 형변환되어 연산이 된다.야99 나는 이 연산과정 이후에 num1과 num2를 short형으로 남아야 하는데, 이 과정이 궁금한것이고 너가말한 전제에선 num1이랑 num2가 형변환 되지 않고 short형으로 연산진행후 결과값을 int형으로 마련한다 인거 같은데
int가 4바이트고 short가 2바이트지? 그니까 캐스팅 할 때 앞에 2바이트가 날라가 버린다는 뜻이지
앞에 날려버리면 음수명 어떡하려고? 기초가 안된채로 의문사항만 생기니 헛도는 거임 처음부터 다시 공부해라. C언어배우면 맨처음부터 비트연산 이진법 보수구하기 배우고 시작할텐데... 건너뛰었냐?