1. #include 순서
include 하는 헤더파일에도 순서가 있다.
1) 시스템 라이브러리의 헤더파일
2) 다른 라이브러리의 헤더파일
3) 현재 프로젝트의 헤더파일
이 순서로 나열하면 가독성을 높일 수 있고 종속성도 피할 수 있다고 한다.
(참고로 이 문제는 오늘 아침에 직접 겪었는데 redis 와 winsock2 헤더는 서로 충돌한다.
winsock2를 아래로 내려주니 작동하는 것을 확인할 수 있었다. )
2) ZeroMemory()
구조체를 초기화할때 쓰인다. ZeroMemory랑 memset은 그냥 같다고 보면 된다.
다만 memset 의 경우에 메모리를 인자로 받은 char형 변수(1byte)로 채워주고 ZeroMemory는 메모리를
0으로 채워준다는 점이 다르다고 한다. 오버헤드 차이도 별로 없고 그냥 명시적으로 0으로 채운다고
하고 싶으면 ZeroMemory를 쓰면 된다고 한다.
(그런데 이럴거면 굳이 ZeroMemory를 쓸 이유가 있나?
그냥 쓰던 memset쓰는게 좀 더 편할 것 같은데 가독성 면에서는 memset이 더 나은 것 같다. 개인적인 생각이지만 ZeroMemory라는 어감이 다른 추측을 할 수 있는 위험성을 갖고 있는 것 같아서 그런 생각이 든다.)
c++ 너무 어렵네...
아래 블로그에서 많은 도움을 받았습니다.
감사합니다.
https://rockdrumy.tistory.com/493
반응형
'C & C++ > C++' 카테고리의 다른 글
[C++] C++ select api와 inet_ntop api 정리 (0) | 2022.11.10 |
---|---|
[C++] C++ listen api 의 parameter 중 backlog. (0) | 2022.11.10 |
[C++] Visual Studio 2022 에서 C++ rapidjson 사용하기 (0) | 2022.11.08 |
[C++] C++ 헷갈리는 개념 간단 정리 (1) (0) | 2022.11.07 |
[C++] 임시 객체란 무엇인가? Temporary Object? (0) | 2022.10.19 |