일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Unity
- Encapusulation
- Class
- flutter
- Read
- UNO
- Pointer
- file access
- sensor
- compare
- preprocessing
- public
- Android
- wpf
- parameter
- stream
- c++
- length
- APP
- aduino
- Contour
- java
- Barcode
- mfc
- inheritance
- atmega328
- memory
- SERIAL
- digitalRead
- Overloading
Archives
- Today
- Total
폴크(FOLC)
MFC - C++ 에서 효과적으로 Coding 하기 본문
728x90
반응형
ㅁ. modern C++ (C++11 이후) 적극 활용하기
- auto, range-based for, smart pointers (unique_ptr, shared_ptr) 등 사용
- std::vector, std::map, std::optional 등 STL 적극 활용
- 람다 표현식, constexpr, std::move 등도 성능과 코드 간결성에 도움
ㅁ. RAII 패턴 따르기 (Resource Acquisition Is Initialization)
- 자원(메모리, 파일, 락 등)은 객체에 맡기고 스코프를 벗어나면 자동으로 해제되게 설계
- 예: std::lock_guard<std::mutex>, std::unique_ptr
ㅁ. 메모리 관리 자동화하기
- new, delete 지양 → 스마트 포인터로 대체
- 메모리 누수, 이중 해제 방지
ㅁ. 코드 스타일과 명확성 유지
- 네이밍 컨벤션, 들여쓰기, 주석 등 일관성 있게 유지
- 모호한 약어 대신 의미 있는 이름 사용
ㅁ. 단위 테스트와 디버깅 습관
- Google Test 같은 프레임워크로 유닛 테스트 구성
- assert, static_assert 적극 활용
- 디버깅 툴 (GDB, Visual Studio Debugger) 활용
ㅁ. 성능을 고려한 코드 작성
- 복사보다는 이동(std::move)
- 참조와 포인터의 차이를 명확히 구분
- 불필요한 동적 할당 피하기
ㅁ. 컴파일러 경고와 정적 분석 활용
- -Wall -Wextra -Werror 같은 컴파일러 옵션으로 경고 감지
- Clang-Tidy, Cppcheck 등 정적 분석 도구 활용
ㅁ. 템플릿과 제네릭 프로그래밍 이해
- 함수나 클래스의 재사용성 높이기 위해 템플릿 활용
- SFINAE, concepts (C++20) 등도 고려
ㅁ. 모듈화와 헤더 정리
- .h/.cpp 분리 및 #include 최소화 (forward declaration 활용)
- 의존성 줄이고 빌드 시간 절감
ㅁ. 끊임없는 학습과 커뮤니티 참여
- CppReference 자주 참고
- Reddit, StackOverflow, GitHub 같은 커뮤니티에서 다른 사람 코드도 관찰
- “Effective C++” (Scott Meyers), “C++ Primer”, “Modern C++ Design” 같은 명서도 읽기
728x90
반응형
사업자 정보 표시
사업자 등록번호 : -- | TEL : --
'C, C++, MFC' 카테고리의 다른 글
MFC - 8bit convert 24bit 이미지 표시 (0) | 2025.03.29 |
---|