본문 바로가기

내가 꾸는 꿈

형변환, 구조체 [노베이스 게임개발 8일차]

반응형

오늘 공부한 내용은 형변환과 구조체이다.

 

그전에 자료형에 대해서 배워야 한다.

- 자료형
 정수 자료형 : int,  %d로 표현 가능
 실수 자료형 : float, %f로 표현 가능, 소수점을 표현할 수 있는 표현형이다.

 

 

더 많은 자료형이 있지만 나중에 더 자세히 배울 예정이다.

 

 

정수형인 10과 4를 나눌경우 몫으로 2가 나머지로 2가 나와 출력은 2가 나올 것이다.

하지만 결과값인 result를 실수형으로 바꿔준다면 2.5로 나오지 않을까?

 

정답은 아니다였다.

 

보다시피 출력은 2.0000이 나오게 된다.

 

왜 그런가 살펴보면 6번째 줄에서 result는 실수형으로 지정이 됐지만

뒤에 계산 부분은 정수끼리 계산 후 정수값이 먼저 나올 것이므로 계산 결과는 2가 나오고 그 후 2가 실수형으로 출력이 되게 된다.

 

이를 해결하려면 어떻게 해야 할까?

 

여기에 사용되는 것이 바로 형변환이다.

 

 

형변환 : 서로 다른 데이터 형을 일치하도록 바꿔주는 것

 

6번째 줄에 달라진 점이 있다면 number들 앞에 (float)가 붙었다는 것이다.

이를 형변환이 되었다고 한다.

number는 최초 정수로 지정이 되었지만 (float)를 통해 형변환이 되어 실수처럼 쓸 수 있다

 

그렇게 하면 정상적으로 실수의 형태로 계산이 되어 출력이 된다.

 

 

 

 

다음으로 알아본 것은 구조체이다.

 

구조체 : 변수를 한데 모아서 관리해 줄 수 있는 변수의 집합

 

 

 

강의에서는 마린에 빗대어 비유했는데 게임개발이 목적인 만큼 어떤 식으로 쓰이는지 조금은 잘 와닿게 된 것 같다.

 

예를 들어 마린이 10마리 있다고 했을 때 각각의 마린 개체에게 체력 공격력 방어력을 할당할 때

int hp[10]; 이렇게 지정후 하나하나 모두 값을 부여한다고 한다면 매우 피곤할 것이다.

 

이것을 해결해 주는 것이 바로 구조체이다.

그림에서 나온 것처럼 메인함수 전에 구조체로서 marine을 지정한 후 각 멤버 변수인 hp, atk, def를 선언해 준다.

그런 다음 메인함수에서 marine m; 이런 식으로 m을 변수의 집합으로 사용하여

m.atk

m.hp

m.def

이렇게 간단하게 변수를 사용할 수 있게 된다.

m2처럼 다른 글자로 사용할 수도 있고

 

그림처럼 배열을 이용할 수도 있게 된다

 

후기 : 

연습문제는 아직 더 배워야 낼 수 있지만, 이 내용들이 매우 중요하기 때문에 잘 숙지해놔야 한다고 한다.

아직 구조체에 대해 완전하게 이해하기는 어렵지만 앞으로 계속해서 사용하는 개념이라고 하니 눈여겨보면서 계속해서 연습하며 이해해야겠다.

 

 

*본 포스팅은 학생의 입장에서 쓴 글로 정확하지 않을 수 있으며 댓글로 피드백해 주시면 감사하겠습니다.

클래스 101 개발자 라라 님의 강의를 통해 학습한 내용을 기반으로 두고 있습니다.

반응형