오늘 강의는 C언어 서식지정자와 리터럴에 대해 배웠다.
지난 강의에서 마저 하지 못했던 탈출 문자열에 대해 실습 먼저 하고 넘어가겠다.
Ex010503)개행하기


Ex010504)탈출 문자열


6. 서식 지정자
- 서식 지정자(Format Specifier) : pirntf() 함수 혹은 scanf() 함수와 같은 입출력 함수들과 함께 쓰여서 양식에 맞게 입출력 할 수 있게끔 도와주는 지정자이다.
문자열의 원하는 위치에 서식 지정자를 넣어서 사용한다.
1) %d: decimal(10진수)의 약자
2) %o: octal(8진수)의 약자.
3) %x: hexadecimal(16진수)의 약자. x는 소문자, X는 대문자로 대체된다,
4) %u: unsigned의 약자. 양수로 대체된다.
5) %c: character의 약자. 문자로 대체된다.
6) %s: string의 약자. 문자열로 대체된다.
7) %f: floating point의 약자. single precision.
8) %lf: double precision floating point.
서식 지정자가 필요한 이유 :
3245라는 숫자를 문자열에 편입시키기 위해서 printf(“Result: %d”, 3245)라고 적을 수 있다.
또한 서식 지정자를 활용하면 계산 결과도 얻어 낼 수 있다.
3245 * 2342의 계산 결과를 화면에 출력시키기 위해 printf(”Result: %d”, 3245 * 2342)라고도 적을 수 있다.
즉, 복잡한 수식을 빠른 시간안에 계산하고 그 결과를 원하는 형식으로 보기 위해서이다.
(복잡한 소스코드를 작성할 때 디버깅 용도로 요긴하게 사용되기도 한다.)
Ex010601) 서식시정자


printf() 함수 코드를 정확하고 쉽게 이해하는 방법 :
뒤에서부터 해석하면 훨씬 쉬워진다.
결국 영어로 작성하기에, 어순이 우리나라와 다르다.
printf(”%d”, 3245 * 2342); 라는 코드는 “3245 * 2342를 %d 형식으로 printf해라”라고 해석한다.
후에 배울 scanf()도 동일하게 뒤에서부터 해석하는게 좋다.
Ex010602) 정수 서식지정자


Ex010603) 실수 서식지정자


7, 리터럴
- 리터럴(Literal) : 소스코드에 적힌 값 그 자체를 뜻한다.
앞으로 저자가 “값”이라고 칭하는 것들은 “리터럴”의 의미를 지닌다고 생각하면 된다.
Ex010701) 리터럴



- 예제 Ex010701은 경고가 뜬다.
: 경고(Warning)은 에러(Error)과 다르다. 에러가 뜨면 빌드는 실패되지만, 경고는 빌드시켜준다.
다만, 경고도 되도록 모두 잡고 가는 것이 국룰이다.
Ex010702) 리터럴 출력


8. 자료형
- 자료형의 필요성 : 컴퓨터는 계산기 + 저장장치이다.
입력한 모든 값은 결국 0과 1로 저장된다. 하지만 컴퓨터는 그 0과 1의 묶음들이 무엇을 의미하는지 전혀 알 수 없다.
어디서부터 어디까지(크기)를 어떻게 해석해야하는지 알려줘야한다. 이 역할을 하는 것이 자료형이다.
- 컴퓨터 공학에서의 크기 단위 : 컴퓨터 공학에서 가장 작은 크기 단위는 1 bit 이다. (이진법의 한 자리에 해당하는 크기)
8 bit = 1 byte / 1024 byte = 1 kb
- 자료형(Type) [정수/실수]
| 자료형 | 크기 == 표현 가능한 수 | 서식 지정 |
| char | 1 byte, -(2^7) ~ (2^7) -1 [-128 ~ 127] | %c or %hhd |
| short int | 2 byte, -(2^15) ~ (2^15) -1 [-32768 ~ 32767] | %hd |
| int [기본 정수 자료형] | 4 byte, -(2^31) ~ (2^31) -1 [2147483648 - 2147483647] | %d ro %i |
| long | 4 byte or 8 byte | %ld |
| long long | 8 byte, -(2^63) ~ (2^63) -1 | %lld |
| float | 4 byte. 유효 자리수 6~7자리. [부호 : 1 bit, 지수 : 8 bit, 가수 : 23 bit] | %f |
| double[기본 실수 자료형] | 8 byte. 유효 자리수 15~16자리. [부호 : 1 bit, 지수 : 11 bit, 가수 : 52 bit] | %lf |
| long double | 8 byte 이상. | %Lf |
Ex010801) 리터럴과 자료형

오늘 C 언어 강의는 이것으로 종료이다.
다음은 FPS 게임 만들기를 이어서 할 것이다.
저번 시간에 총을 적용해주기 까지 하였으니 오늘은 팔을 붙이고 움직 일 수 있게 할 것이다.
- 팔 스켈레탈 메시가 없기 때문에 컨텐트 브라우저에 가서 추가해 준다.
- Add > Add Feature or Content Pack > First Person(1인칭)을 추가해준다.


- FPS_Character에 팔을 적용시키기 위해 Mesh > Skeletal Mesh Asset > SK_Mannequin_Arms 선택

- 캐릭터를 레베에 배치한 후 Auto_Possess 에서 Player 0 으로 할당해주어 만든 캐릭터에 빙의를 설정해준다.
- 다시 Mesh 클릭 후 Animation > Mode > Use Animaition Asset 으로 변경 > FP_Rifle_Idle 선택

- Location을 수정하여 적절한 위치에 손을 배치해 준다.
- SK_Mannequin_Arms_Skeleton 을 열어서 Preview Animation > rifle 검색 > FP_Rifle_Idle 선택
- hand_r 찾은 뒤 우클릭 > Add Socket
- 생성된 hand_rSocket 우클릭 > Add Preview Asset > SK_M16_Scope 선택 후 적절하게 위치 조정

- 정석적인 방법으로 컴포넌트에서 Gun을 Mesh의 자식으로 드래그 앤 드랍 한다.

- 총알이 발사되면 총구에 화염이 일어나야 하는데 그것을 Muzzle Flash라고 한다.
- Gun에 Add > SceneComoponent 선택 > 이름을 Muzzle Flash로 변경 > 총구의 위치에 Muzzle Flash 위치 조정

- 입력 매핑을 해주어 캐릭터의 움직임을 만들 것이다.
- Input Mapping Context (IMC_FPS) 생성, Input Action (IA_Look, IA_Move) 생성
- Value Type : Axis2D로 설정


- 이벤트 그래프에서 노드 설정 해준다.



- 다만 이렇게 만든 노드들로는 바닥을 바라보며 전진키를 눌렀을 때 전진이 잘 되지 않으며,
하늘을 바라보고 계단을 올라갈 수 없다.
- 변수들을 미리 생성해준다.
| 변수명 | 타입 | 기본값 | 설명 |
| Health | Float | 100.0 | 현재 체력 |
| MaxHealth | Float | 100.0 | 최대 체력 |
| CurrentAmmo | Interger | 30 | 현재 탄약 수 |
| MaxAmmo | Interger | 30 | 최대 탄약 수 |
| MaseDamage | Float | 20.0 | 한 발당 데미지 |
| IsFiring | Boolean | false | 발사 버튼 누름 상태 |
| FireInterval | Float | 0.1 | 연사 간격(초) |
| CanFire | Boolean | true | 발사 가능 여부(연사 제어) |
| DefaultFOV | Float | 90.0 | 일반 시야각 |
| AimFOV | Float | 60.0 | 조준 시 좁아지는 시야각(시야 확대) |
| IsAiming | Boolean | false | 조준 줌인지 여부 |

- 타임 라인을 활용해서 부드럽게 조준이 되게 설정해준다.
- ABP_FPSCharacter을 만들어서 설정해준다.




여기까지 만든 후 테스트 해볼 것이다.
오늘로 2일차가 끝이 났는데 점점 난이도가 올라가는 것이 느껴졌다.
역시 특출나게 눈에 띄는 분들이 제법 있어서 조금 기죽게 되는 것 같았다. 그래도 열심히 해보자고 마음 먹었으니 열심히 할 것이다.
'본캠프 TIL' 카테고리의 다른 글
| 04.27 Unreal 본캠프) 배열, 함수 / FPS 완성 (0) | 2026.04.27 |
|---|---|
| 04.24 Unreal 본캠프 5일차) 반복문 정리/FPS만들기 과정 (1) | 2026.04.24 |
| 04.23 Unreal 본캠프 4일차) 연산자, 조건문, 반복문/FPS 만들기 과정 (0) | 2026.04.23 |
| 04.22 Unreal 본캠프 3일차) 변수와 연산자/ FPS 총 쏘기 및 UI (0) | 2026.04.22 |
| 04.20 Unreal 본캠프 1일차) 코딩과 블루프린트 (0) | 2026.04.20 |