프로그래밍 C언어 28

상수 열거형 (Enumeration)

#include #define IDLE 7 //디버깅할 때 7이 안나옴enum EAnimation //상수를 만드는 개념{ kIdle = 10, kWalk, kRun, //초기화값에 따라 이후는 ++1씩 출력됨 // 디버깅할 때 초기화값을 읽음. JUMP = 123, FAIL, Attack, Die //이렇게되면 10, 11, 12, 123, 124, 125, 126이 출력됨.};void main(){ // 열거체, 열거형(Enumeration) printf("kIdle: %d\n", kIdle); //kIdle: 10 printf("kWalk: %d\n", kWalk); //kWalk: 11 printf("kRun: %d\n", kRun); //kRun: 12 printf("JUMP: %d..

구조체 (Structure)

#include #include struct SCharacter // 구조체 선언! (Structure Declaration){ // 멤버 변수(Member Variablese) // 구조체 패딩(Structure Padding): 부족한 메모리를 채워주는 거 char lv; // 1byte //alt 누르고 방향키 누르면 그 코드가 이동 int hp; // 4byte short mp; // 2byte int exp; // 4byte // int arr[3]; // 배열도 됨. 이건 12byte int equip[3];};typedef struct SCharacter SChar;//SCharacter를 SChar로 표현한다는 뜻typedef unsigned int HP; //HP를..

비트 단위 연산자 (Bitwise Operators)

#include enum EEquip //enum문은 열거형 정의 시 사용{ kEmpty = 0, kHead = 1, kChest = 2, kLArm = 4, kRArm = 8, kLLeg = 16, \ kRLeg = 32, kWeapon = 64, kShield = 128 //각자 비트 제공};void PrintEquip(unsigned char _equip); //반환값이 필요없는 함수는 void 사용void main(){ //비트 단위 연산자(Bitwise Operators) //비트 단위로 조작할 때 사용. char lhs = 3; //정수 3값 비트단위연산자로 2진수 사용 char rhs = 5; //정수 5값 비트단위연산자로 2진수 사용 //Bitwise AND(&) ..

동적 메모리 할당 (Dynamic Memory Allocate)

오늘은 동적 메모리 할당에 대한 글을 쓰겠습니다. 메모리 할당에는 크게 2가지로 정적, 동적 메모리 할당으로 나뉩니다. 컴퓨터에서 메모리와 관련된 단기 기억 장치인 RAM에서 처리되고 RAM을 구성하는 3가지 요소가 있으며 각각 DATA, STACK, HEAP으로 나뉘어있습니다.RAM(Random Access Memory): 데이터가 저장된 주소 어디든 접근할 수 있는 것을 뜻합니다. (그냥 엄청난 기술이라고 생각합니다.)DATA: 전역 변수STACK: 지역 변수HEAP: 사용자가 직접 관리전역 변수와 지역 변수는 지난 글들에서 다룬 바가 있습니다. 이들은 정적 메모리들에 해당되고 DATA와 STACK에서 다루고 있습니다. 오늘의 동적 메모리 할당은 HEAP에 관련된 내용입니다.정적 메모리 할당: 프로그..

함수 (Function)

함수는 특정 기능을 하는 코드들을 묶어 하나의 명령어로 표현한 것입니다. 함수에 대해 알기 전에 먼저 알아야하는 것은 코드는 위에서 아래로 읽는 순서가 정해져있습니다. 때문에 함수를 이용해 기능을 코드 순서 상관없이 불러오는 것입니다.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596#include stdio.h>  // 함수선언(Function Declaration)// 반환형 함수명(매개변수)void PrintHelloWorld..

포인터 (pointer)

이전 글에서 잠깐 다뤘던 포인터(pointer)에 대해 더 자세하게 쓰는 글입니다. 밑은 예제 코드.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111#include stdio.h> void main(){    // 포인터(Pointer): 메모리 주소 공간 기억    int var = 10;    // *: pointer    // &: 변수의 주소    ..

배열 (Array)

오늘은 배열(Array)에 대해 글을 쓰겠습니다.1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283#include stdio.h>// 치환#define MAX_LEN 3 void main(){    int arr[5] = { 1, 2, 3,/*, 6*/};     int arrInit[50] = { 0 };        // 정적배열(Static Array) - Compile-Time    // 동적배열(Dynamic Array) - Run-Time     // 배열의 요소(E..