C++
-
[C++] __attribute__ 에 대해서C++ 2024. 6. 27. 17:15
__attribute__란?단어 그대로 속성을 부여해주는 기능C, C++에서 컴파일러에게 추가정보를 제공하여 코드의 동작을 세밀하게 제어할 수 있도록 하는 기능이다.함수, 변수, 구조체 등에게 사용가능 쉽게 말해서 컴파일러에게 "이것(함수, 변수, 구조체.. ) 좀 이러이러하게 처리해주세요~" 하는 특별한 지시어이다. 주로 사용되는 속성 aligned(n): 변수가 n 바이트 경계에 맞춰서 배치되도록 함packed: 구조체의 멤버 사이에 패딩을 추가하지 않고 연속적으로 배치noreturn: 함수가 반환하지 않음을 알려주는 속성deprecated: 해당 함수나 변수를 더 이상 사용하지 않도록 하는 속성 함수에 사용할 때함수가 반환하지 않음을 컴파일러에게 알려주는 속성인 'noreturn' 의 예시,함수가..
-
[C++] #pragma 란?C++ 2024. 6. 27. 16:20
PragmaC 및 C++ 프로그래밍 언어에서 컴파일러에게 특정 지시사항을 전달하는 데 사용되는 전처리기 지시어 표준화되어 있지 않아서 코드의 안전성 이식성을 보장하기 위해선 #define 등으로 대체하기도 한다.종류1. #pragma once헤더 파일이 여러 번 포함되는 것을 방지하는 pragma#include된 폴더에 같은 헤더가 있으면 무시한다.#pragma once#ifndef MY_HEADER_H#define MY_HEADER_H// 헤더 파일 내용#endif // MY_HEADER_H 2. #pragma pack구조체 멤버 배치를 제어하는 pragma틀정 바이트 경계로 맞추게 한다.메모리 사용을 최적화하거나 특정 메모리 레이아웃을 강제할 때 사용 #pragma pack(push, 1)현재의 메..
-
[C++] Boost MSM(Meta State Machine) 이란?C++ 2024. 5. 24. 11:38
BOOST란?C++ 기반의 템플릿 라이브러리의 집합.오픈소스로 MIT 라이선스와 비슷하게 독자적인 라이선스를 따른다.간단히 얘기해서 C++에서 쓰이는 검증된 오픈 소스 라이브러리의 집합.C++ 개발자는 거의 필수적으로 설치해야됨. #include 이런식으로 헤더 파일을 선언하여 사용 BOOST MSM 이란?Boost.MSM(Meta State Machine) 의 줄임말C++에서 상태 기계를 구현하기 위한 라이브러리.상태 기계(State Machine)이란 다양한 상태와 상태 간의 전이(transition)를 정의하고 관리하는데 사용됨.복잡한 상태 기계의 구현을 쉽게 하게 도와주고 코드의 가독성과 유지보수성을 높혀줌. 쉬운말로 정리하자면, 현실에서 어떤 기계가 있고 그 기계를 C++ 코드로 제어할 때,bo..