본문 바로가기

전체 글75

21. 인라인 지정자(Inline) 인라인(inline) 지정자는 CPP에서 추가된 새로운 기능이다. 보통 함수와 같이 사용되고 둘을 묶어서 인라인 함수라고 부른다. 컴파일러에게 코드를 풀어서 작성하라고 지시하는 기능을 하는데 C의 매크로와 동일한 역활을 한다. 작성법이 기존 함수와 같은 것도 있고 무엇보다도 컴파일할 때 디버깅이 편리해졌다. ▼ 인라인 함수 예시 #include // INLINE FUNCTION inline int Compare(int lhs, int rhs) { return (lhs - rhs); } int main() { int A = 10; int B = 5; // CODE if (Compare(A, B) > 0) printf("A is Bigger then B\n"); // COMPILER int lhs = 10;.. 2021. 1. 25.
20. 헤더 재정의 방지(Include Guard) CPP에서 전처리기를 사용하여 헤더 재정의 방지한다. #ifndef, #define, #endif C와 CPP 표준에서 사용하는 헤더 재정의 방지 방법이다. 다르게 말하면 유닉스, 리눅스, FreeBSD, 윈도우, 맥OS 등 모든 운영체제에서 다 작동한다. 그래서 거의 대부분의 C++ 오픈소스 프로젝트들은 이 방법을 사용하고 있다. 가장 널리 사용되고 권장되는 방법이다. ▼ C/CPP 표준 #ifndef _POINT2D_H_ #define _POINT2D_H_ class Point2D { public: Point2D(); ~Point2D(); }; #endif 전처리기 명령어(ifndef) 이름대로 _POINT2D_H_ 가 재정의 되어 있지 않다면 재정의한다. #pragma once 마이크로소프트社의 비.. 2021. 1. 25.
[X][Mini Jam 72]Adventure ※ 목표 달성 실패(2021.01.24) 가족의 이사가 겹치면서 잼 기간의 절반이 통째로 날라갔다. 게임 제출이란 목표는 달성 못 했지만 Cocos2D-X개발 환경 설정과 이미지와 레이블, 장면 전환을 비롯한 간단한 API 사용법을 익힐 수 있었다. 다음에는 진짜 꼭 제출하고 말리라... Mini Jam은 2주에 한번씩 격주로 열리는 게임잼이다. ZaranW와 KingW 형제가 개최하며 커뮤니티가 제법 크고 활성화 되어 있다. 잼 테마 Adventure 잼 규칙 반드시 제한 시간 안에서만 개발해야 합니다. 우리가 확인도 할꺼에요. 하지만, 게임이 등록된 이후로 업데이트 하는 것은 허용합니다. 어떤 종류의 괴롭힘도 있어선 안 됩니다. 게임은 깨끗해야합니다. 후방주의는 물론 타인을 비방하거나 잔인하거나 폭력.. 2021. 1. 23.
19. 클라스(Class) 처음에 C++은 C에 클라스(Class)란 기능 하나가 더해졌다고 해서 C with Class로 불렸다. (C = C + 1;) 이후 버전업을 진행하면서 C++로 이름이 변경되었지만 여전히 C++에서 클라스가 차지하는 비중은 매우 높다. 객체(Object) 클라스(Class)는 보기보다 복잡한 뜻을 가진 단어로 우리나라 말로 번역하면 '특정 범주에 속하는 것으로 간주하거나 할당된 것' 을 의미한다. 그러니까 요약하자면 같은 범주에 있는 변수나 함수들을 한 곳에 모아둔 것이라 볼 수 있는데 이게 프로그래밍에서 흔히 말하는 객체(Object)다. C++은 이 객체를 중심으로 프로그램을 제작할 수 있기 때문에 OOP(Object Oriented Progamming), 객체지향 프로그래밍 언어로 분류된다. 물론.. 2021. 1. 22.
20210121(목) 오늘은 알고리즘 말고도 다양한 C 표준 함수에 대해서도 배웠다. rand() 함수 Random의 약자로 { 0 ~ RAND_MAX } 범위에서 무작위 Int형 값을 반환하는 함수다. C언어의 표준 라이브러리 중 하나인 라이브러리에 매크로로 최댓값이 정의되어 있는데 운영체제에 따라 이 최댓값의 크기가 다 다르다. 리눅스, OpenBSD는 { #define RAND_MAX 2147483647(INT_MAX) } 라 정의 되어있고, 마이크로소프트社의 윈도우는 { #define RAND_MAX 0x7fff(32767) } 라고 정의되어있다. ▼ 예시 코드 #include #include int main() { printf("RAND : %d\n", rand()); return (0); } srand() 함수 S.. 2021. 1. 21.
20210120(수) 삽입 정렬(Insertion Sort) 범위를 늘려가면서 검사하는 것이 특징인 정렬법. ▼ 전체 코드 #include int Compare(int lhs, int rhs); void Swap(int* lhs, int* rhs); void InsertionSwap(int* pArr, int length); void PrintArray(int* pArr, int length); int main() { int iArr[5] = { 5,4,3,2,1 }; PrintArray(iArr, 5); InsertionSwap(iArr, 5); PrintArray(iArr, 5); return (0); } int Compare(int lhs, int rhs) { return (lhs - rhs); } void Swap(i.. 2021. 1. 20.