티스토리 뷰
핵심
pragma는 컴파일러에게 그 뒤에 오는 내용에 따라 어떤일을 하라는 전처리 명령이다.
pragma once
한번 컴파일 되면 더 이상 컴파일 하지 않는다.
여러개의 cpp파일이 있을때, 하나의 cpp파일이 수정되면, 그 파일만 컴파일하고 나머지는 하지 않는다
보통 .h파일의 최상단에 한번 언급한다.
pragma comment(lib, "ws2_32")
컴파일 시 ws2_32.lib 파일을 링크하라는 명령.
보통 VS같은 IDE개발환경에서는 프로젝트 속성에서 해주는 경우가 있지만, 환경이 바뀔때를 대비해서 사용
pragma pack(n)
위에서, n의 값으로 1,2,4,8 등이 올 수 있으며 특히 네트워크통신쪽을 개발할때 구조체의 맴버들을 align할때 사용하는 것이다
상세 설명 : https://dojang.io/mod/page/view.php?id=432
[
C 언어 코딩 도장: 51.2 구조체 정렬 크기 조절하기
데이터 전송이나 저장을 할 때 구조체 정렬을 피하려면 어떻게 해야 할까요? 그런데 C 언어에서는 구조체를 정렬하는 표준 방법이 없습니다. 하지만 걱정하지 않아도 됩니다. 각 컴파일러에서 제공하는 특별한 지시자를 사용하면 구조체 정렬 크기를 조절할 수 있습니다. Visual Studio, GCC 4.0 이상 #pragma pack(push, 정렬크기) #pragma pack(pop) __attribute__((aligned(정렬크기), packed)) 다음
dojang.io
](https://dojang.io/mod/page/view.php?id=432)
#pragma waming
- 컴파일시에 어떤 조건 (#if, #ifndef)에 의해 개발자에게 어떤 것을 알려주고 싶을 경우
'C++ > Skill (기본지식, 모던C++)' 카테고리의 다른 글
기본지식 : 메모리) 가상 메모리 / 코드,데이터,스택,힙 (0) | 2020.03.18 |
---|---|
기본지식 : 생성자) 복사 생성자 (0) | 2020.03.18 |
기본지식 : 포인터.3) 함수 포인터 (0) | 2020.03.16 |
모던C++) Callable을 객체로! std::function (0) | 2020.03.16 |
모던C++) 람다(Lambda) 함수 (0) | 2020.03.06 |
- Total
- Today
- Yesterday
- double free
- 람다함수
- 람다
- LambdaFunction
- UE4
- Lambda
- c++
- coordinate system
- rotator
- Trouble shooting
- bug
- C
- c++11
- unrealengine
- UE5
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |