본문 바로가기

전체 글27

[C언어 #7] 구조체 (struct, typedef) 배열은 크기가 같은 동일한 데이터 타입만 묶을 수 있습니다.하지만 구조체를 사용하면 크기나 형식이 다른 데이터도 하나로 묶어서 관리할 수 있습니다.     1. 구조체 개념struct 구조체 이름{자료형1 변수_이름1;자료형2 변수_이름2;...}위 구조체는 몬스터 데이터를 저장하기 위해 서로 다른 데이터 타입(문자 배열, 정수)을 하나로 묶은 예제입니다.Monster는 새로 정의된 데이터 타입으로 int, char 등과 동일한 역할을 합니다.   2. 구조체 변수 구조체를 사용하려면 변수를 선언한 후, 각 요소에 접근하여 데이터를 저장하거나 읽어옵니다. 구조체 변수의 요소에 접근하려면 요소 지정 연산자(.)가 필요합니다.예를 들어 monster.name은 monster 변수의 name 요소에 접근합니다.. 2024. 12. 6.
[C언어 #6] 다차원 포인터 (2차원) 다차원 포인터는 메모리 주소를 여러 단계로 간접 참조하는 포인터로, 포인터의 개념을 한 단계 더 확장한 것입니다.      1. 다차원 포인터 개념 포인터는 메모리 주소를 저장하는 변수입니다.다차원 포인터는 이러한 포인터를 가리키는 포인터를 의미합니다.예를 들면 일반 포인터는 메모리 주소를 가리키지만, 다차원 포인터는 다른 포인터의 주소를 가리킵니다. 차원은 포인터가 참조하는 단계에 따라 증가합니다.일반 포인터: *ptr2차원 포인터: **ptr   2. 다차원 포인터 선언(자료형)**(변수 이름); 다차원 포인터 중 가장 자주 사용하는 2차원 포인터 예시입니다. 다차원 포인터는 자료형 앞에 차원의 개수만큼 *을 붙여 선언합니다.*의 개수가 많아도, 다차원 포인터 역시 메모리 주소를 저장하는 변수이므로 .. 2024. 12. 5.
[C언어 #5] 표준 입력 함수 (getchar, getc, gets, scanf) 표준 입력 함수를 사용하려면 프로젝트 상단에 #include 를 작성해야 합니다.표준 출력 함수(putc, printf 등)와 비슷하지만 포인터에 대한 개념이 필요합니다.     1. 단일 문자 입력 함수 getchar getchar는 get + character를 합친 단어입니다.단일 문자를 입력받고 이를 int 형식으로 반환합니다.  알파벳이나 숫자와 같은 대부분의 입력 문자는 1바이트 크기이므로, 반환값을 char 변수로도 받을 수 있습니다.하지만 getchar는 특정 상황에서 문제가 생길 수 있습니다.   1번째 입력 후에 누른 엔터키가 2번째 호출에서 입력으로 처리됩니다.이로 인해 2번째 출력은 원치 않는 결과를 출력할 수 있습니다.   이를 해결하기 위해 입력 버퍼를 초기화해야 합니다.C언어에.. 2024. 11. 28.
[C언어 #4] 포인터 (const, void*, 형변환) C#을 배우다 C언어를 배우게 되면 포인터라는 새로운 개념을 접하게 됩니다.포인터는 C언어의 중요한 특징 중 하나로, 성능을 높이고 메모리를 효율적으로 관리할 수 있게 합니다.포인터를 적절히 활용하면, 100바이트를 사용할 데이터를 4바이트로 줄여 처리할 수 있습니다.     1. 포인터 개념 운영체제는 메모리를 1바이트 단위로 관리합니다.32비트 운영 체제에서는 0번지부터 약 42억 번지(2³² - 1)까지의 메모리 주소가 부여되며,이 주소 범위를 저장하려면 4바이트가 필요합니다. 포인터는 바로 이 메모리 주소를 저장하는 변수입니다. 포인터가 4Byte 크기를 가지는 이유도, 메모리 주소를 표현하기 위해 unsigned int와 같은 4Byte가 필요하기 때문입니다.      2. 포인터 선언(*)(자.. 2024. 11. 20.
[C언어 #3] 표준 출력 함수 (putchar, putc, puts, printf) 표준 출력 함수를 사용하려면 프로젝트 상단에 #include 를 작성해야 합니다.#include는 컴파일러에게 특정 파일을 읽도록 지시하는 역할을 합니다.하지만 이 지시는 컴퓨터가 읽을 수 있는 2진수로 번역하는 것이 아니기 때문에 마지막에 세미콜론(;)을 붙이지 않습니다. 표준 출력 함수는 다양한 운영체제에서 동일한 코드로 동작하는 프로그램을 작성할 수 있도록 설계된 함수들입니다.보통 운영체제라고 하면 윈도우를 떠올리지만 맥 OS, 리눅스 등 다양한 운영체제가 사용되고 있습니다.이 표준 출력 함수를 사용하면 서로 다른 운영 체제에서도 문법을 바꾸지 않고 잘 동작하는 프로그램을 만들 수 있습니다.    1-1. 단일 문자 출력 함수 putchar putchar는 put + character를 합친 단어입.. 2024. 11. 19.
[C언어 #2] 자료형의 종류 (signed, unsigned) C언어의 자료형 종류에는 크게 char, int, float가 있습니다.각각의 메모리 크기와 부호에 대해 설명하려 합니다.  1-1. signed char기본적으로 signed가 생략되어 흔히 char라고 사용합니다.1바이트(8비트) 크기의 자료형이며 부호가 있는 데이터를 처리할 수 있습니다. 첫 1비트는 부호 비트(+, -)로 사용하고 나머지 7비트에만 숫자를 저장할 수 있습니다.2⁷ = 128개의 숫자가 가능하기 때문에 0을 포함한 양수 128개(0~127)와 음수 128개(-1~-128)를 저장할 수 있습니다.  1-2. unsigned charunsigned char는 부호 비트 없이 1바이트(8비트) 공간 전체를 숫자 저장 공간으로 사용합니다. 2⁸ = 256 개의 숫자가 가능하기 때문에 0을 .. 2024. 10. 17.
[C언어 #1] 자료형 char가 한 글자만 적을 수 있는 이유 자료형 char char는 작은따옴표('')로 감싼 'A' 같은 한 글자만 저장할 수 있습니다.왜 char에는 한 글자만 저장할 수 있을까요?그 이유는 아스키 코드(ASCII)와 관련이 있습니다. 아스키 코드는 문자를 숫자로 표현하는 표준이며, 아래는 아스키 코드 표입니다.  아스키 코드표'A' 는 65'B' 는 66'a' 는 97  char형 변수 num에 'A'를 넣어서 실행하면 화면에 A가 출력됩니다.  'A' 대신 숫자 65를 넣어서 실행해도 똑같이 화면에 A가 출력됩니다. char형 변수 num에 'A'를 저장하면, 컴퓨터는 이를 아스키 코드 65로 변환하여 저장하고, 다시 화면에 출력할 때는 문자 'A'로 변환하여 보여줍니다.그렇기에 자료형 char는 아스키 코드에 있는 문자 한 글자만 적을 .. 2024. 10. 16.
[언리얼5 블루프린트] 캐릭터 3인칭 모드 만드는 방법 원하는 캐릭터로 3인칭 모드를 만들어보겠습니다.   원하는 캐릭터를 임포트 시킵니다.Mixamo 사이트를 이용하면 무료로 Fbx파일을 다운할 수 있습니다.   새로운 블루프린트 클래스 → 캐릭터를 생성합니다.캐릭터의 이름을 설정해야 하는데 Mixamo 사이트에서 가져온 이름 그대로 썼습니다.BP_Remy로 이름 변경합니다.   스켈레탈 메시 에셋을 Remy로 설정합니다.블루프린트 BP_Remy가 아닌 기본 스켈레탈 메시만 들어갈 수 있습니다.   캡슐에 딱 맞도록 캐릭터의 스케일을 조정합니다.캐릭터가 너무 작다면 이 상태에서 캡슐 컴포넌트의 스케일을 키우면 됩니다.파란색 화살표 방향을 보고 있도록 각도도 조정합니다.   추가 버튼을 누르고 카메라 컴포넌트와 스프링 암 컴포넌트를 캡슐 컴포넌트에 추가합니다.. 2024. 8. 14.
[언리얼5 블루프린트] 발사하는 컴포넌트 만들기 저번 게시글에서 오버랩되면 경로를 이동하는 컴포넌트를 이용하여 엘리베이터를 만들었습니다.[언리얼5 블루프린트] 인터페이스를 이용한 이동 컴포넌트 만들기 (엘리베이터) 이번에는 오버랩되면 발사하는 컴포넌트를 만들어보겠습니다.  새로운 블루프린트 클래스 액터 컴포넌트를 만듭니다.이름은 실행_발사로 변경했습니다.   클래스 세팅에서 구현된 인터페이스를 추가합니다.이전 게시글에서 만든 실행 인터페이스를 추가했습니다.   자동으로 추가된 인터페이스에 우클릭하여 이벤트 실행을 클릭합니다.Event Trigger가 생성됩니다. Reset 이벤트는 사용하지 않으므로 만들지 않았습니다.   Event Trigger 노드에 SpawnActor 노드를 연결합니다.Class는 밖에서도 수정할 수 있도록 변수 승격하고 이름은 .. 2024. 8. 12.