게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
제가 자료형을 잘 이해못하는것 같아요..
게시물ID : programmer_14492짧은주소 복사하기
작성자 : DJ.A
추천 : 0
조회수 : 414회
댓글수 : 13개
등록시간 : 2015/11/19 01:36:21
옵션
  • 본인삭제금지
else if (pt_atk->magic == 3)
            {
                printf("回復魔法。。。。!\n");
                printf("HPとMPが各々20%回復しました。\n");
                pt_atk->hp += pt_atk->hp*0.2;
                pt_atk->mp += pt_atk->mp*0.2;
                printf("プレイヤー%dの現在魔力:%d\n", turn, pt_atk->mp);
                printf("プレイヤー%dの現在体力:%d\n", turn, pt_atk->hp);
            }

다소 어설프긴 해도 게임을 만들고 있습니다.

소스코드 중 몇줄을 긁어왔는데, 캐스팅을 하지않아 C4244오류가 몇십 줄 이상이 뜹니다.
일단 긁어온 코드의 의도는 뭐..회복 마법을 썼다! 면 시전자의 mp와hp가 20% 회복 하는걸 하고싶었던것이고요
따라서 시전자 구조체의 hp변수 에 포인터로 액세스 하여, 그 값을 토대로 20%만큼 더하는.. 생각을 했는데요

 12    warning C4244: '=' : 'double' から 'int' への変換です。データが失われる可能性があります。  
'double'형 으로부터 'int'형으로의 변환입니다. 데이터가 유실될 위험이 있습니다. 라고 하네요.
대충 소수점 이하 자리가 발생하였는데, 그 발생한 변수는 int 형으로 선언되었으니 소수점 이하 자리는 버려질것이다!(제가 이해한게 맞다면)
이라고 생각합니다.
따라서 어느 부분인가에 (int)라던지로 캐스팅을 해줘야하는것 같은데 어디에 어떻게 해줘야할지 잘 감을 못잡겠네요..

아니면 그냥 전부 다 float 형으로 선언해버리는것도 괜찮을까요? (소수점자리 발생하는 변수에  한해 전부다)
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호