CS/C 22

20240112 C - 자료구조 STACK

#include #include //Buffer 데이터를 모아두고 관리하는 공간#define BUF_MAX 10// 조건부 컴파일(Conditional Compile)//#define DEBUG_MODE // 정의되어 있다면 #ifdef DEBUG_MODE, #endif로 코드부분을 지정해두면 출력됨, 정의되어 있지 않다면 컴파일 할때 해당 부분은 제외됨// 컴파일러 상단의 Debug과 Release 모드의 차이// Debug 모드는 빌드할 때 디버깅을 위한 정보도 들어있음, Relese는 실행만을 위한 정봔 빌드됨, 용량차이가 큼// Debug 모드에서는 잘 돌아가도 Relese에서는 뻗는 경우 있음, 포폴 제출할 때는 Relese로 빌드해서 제출해야함//Push// *배열, *인덱스, 값. 외부에서 ..

CS/C 2024.01.12

20240111 C - Static(정적 변수)과 함수 포인터

static #include int g_cnt = 0; void StaticFunc() { int cnt = 0; printf("cnt: %d ", ++cnt); printf("g_cnt: %d ", ++g_cnt); // 정적변수(Static Variables) // 컴파일할 때 메모리에 올라감 static class도 객체를 만들기 전에 이미 메모리에 있기 때문에 접근이 가능하다 // 전역변수와 같이 프로그램이 종료될 때까지 유지되기 때문에 사용에 유의 static int s_cnt = 0; // 값은 유지되지만 지역 안에서만 접근이 가능하다 printf("s_cnt: %d\n", ++s_cnt); } int main() { for (int i = 0; i < 10; ++i) { StaticFunc(..

CS/C 2024.01.11

20240111 C - Bitwise(비트단위 연산)

#include typedef enum _EOptions { Clean = 0, //op_Clean 옵션용 Clean이라는 의미로 op_ 를 붙이기도 함 FullScreen = 1, Minimize = 2, ScrollH = 4, ScrollV = 8, BtnExit = 16, Menu = 32} EOptions;void ApplyOption(char* const _pOp, EOptions _applyOp) { // 옵션 켜기 (*_pOp) |= _applyOp; /* int i = 10; _pOp = &i; // 큰일남 // 그래서 char* const _pOp 해야함 char* const _pOp - _pOp의 주소 보호 const char* _pOp - _pOp의 값 보호 */}void OffOp..

CS/C 2024.01.11

20240111 C - Union(공용체)

#include union UMem{ char c; int i; double d; }; // 메모리 제일 큰 애 기준으로 그 공간 공유,.임시 변수 같은거 이렇게 씀. 엔진이나 os 같은 개발할때 메모리를 극한으로 아낄때 씀. 스위치도...아마................. // 너무 큰 타입으로 만들면 오히려 비효율적 int main() { //공용체(Union) union UMem mem; printf("mem Size: %d Byte\n", sizeof(mem)); mem.c = 'g'; printf("mem.c: %c (%p)\n", mem.c, &mem.c); mem.i = 23; printf("mem.i: %d (%p)\n", mem.i, &mem.i); mem.d = 3.14; printf(..

CS/C 2024.01.11

20240111 C - Enum(열거체)

#include enum EAnim {IDLE, WALK, RUN, JUMP, Len}; // 값 넣으면 넣은거 기준으로 그 뒤부터 1씩 증가 //구조체식 #define? 저장 리터럴 상수이기 때문에 다 대문자로 쓰는 경우 많음 kRun 처럼 쓰기도 함 typedef enum _EBGM { Field, Battle, Len } EBGM; //typedef 가능 int main() { // 열거체(Enumerated Type) 정수를 저장 printf("Idle: %d\n", IDLE); printf("Walk: %d\n", WALK); printf("Run: %d\n", RUN); printf("Jump: %d\n", JUMP); // 다른 값을 넣어주지 않아도 자동으로 0,1,2,3들어감 //EAnim..

CS/C 2024.01.11
반응형