API 프레임워크 구축(2)

Gloz·2022년 11월 19일
0

API에 대한 내용

목록 보기
5/11

프레임워크 구축하기

  • 프로젝트 부분에 들어가서 고급 버튼에서 문자집합을 멀티바이트 문자 집합 사용 으로 바꿔주기

  • C/C++ 쪽에서 언어를 준수 모드를 아니요 로 설정하기

  • 미리 컴파일된 헤더를 미리 컴파일된 헤더 사용으로 만들어 놓고 내가 따로 만든 컴파일 헤더파일 이름인 "Stdafx.h"를 미리 컴파일된 헤어 파일에 적어놓기


  • Stdafx.cpp에 들어가서 미리 컴파일된 헤더를 만들기로 적용하기

Stdafx.h 헤더파일

이 파일 안에 모든 헤더파일들을 집어 넣어준다.

//! Windows 헤더 파일
#include <windows.h>

//! C 런타임 헤더 파일
#include <stdio.h>
#include <stdlib.h> //기본적인 라이브러리
#include <malloc.h> //C언어의 동적 할당(메모리관련)
#include <memory.h> //메모리관련
#include <tchar.h> //문자셋을 바꿔주는 중간 매크로형 자료형

//! C++ 런타임 헤더 파일
#include <iostream>

#include <chrono>
#include <random> //메르센 트위스터 1037 난수 생성
#include <vector> //동적 배열
#include <map> //레드블랙트리에 기반한 key, value를 이용한 자료형
#include <unordered_map>
#include <string>
//#include <cassert>
#include <bitset>

//! 사용자 정의 헤더파일
#include "CommonMacroFunction.h"

여기서 더 추가적으로 넣을 것이라면 이 헤더파일 안에 넣으면 된다.

어떠한 클래스를 만들던 헤더파일이 추가된 상태로 나오게 된다.

  • 이 헤더파일에서 추가적으로 본다면

  • Chrono 헤더파일이 있다.

    • C++ 11 에서 추가된 시간 관련 라이브러리 (STL) 이며, 기존 C런타임에서 제공하는 time 함수보다 다양한 / 확장된 기능을 지원한다.
    • 장점 : 정밀도가 높다 ( 나노 밀리 초 단위 ), OS와 독립적으로 동작을 한다.
  • unordered_map 헤더파일

    • Hash 자료구조
    • 일반적 상황에서는 map보다 검색속도가 더 빠르다.
    • 1대1 매칭이기에 중복된 데이터를 허용을 하지 않는다.
    • 유사 데이터가 많을 시 (Key) 해시 충돌이 발생해 성능이 저하된다.
  • bitset 헤더 파일

    • 비트 연산을 좀 더 쉽게 관리해 주는 함수를 지원한다 (STL)

    • reset(), set(), flip(), all(), any(), size() 등등을 비트 연산에 한해 지원하고 있다.





자주 사용할 함수들 설정하기

내가 앞으로 자주 사용할 함수들을 따로 헤더파일로 만들어서 설정해준다.

헤더파일은 CommonMacroFunction.h 으로 설정해 두었다.

인라인 함수를 통해 보다 더 빠르게 실행하도록 만든다.

profile
개발자가 되기 위해 조금씩 나아가겠습니다.

0개의 댓글