https://www.youtube.com/watch?v=GUgX9eV_Bu0&list=PLDV-cCQnUlIY4TMoRsrW0oqjCLTSm1nAf&index=4
참조하였음
ABCD가 정의되어있으므로
ifdef ABCD가 참이므로
std::cout << "1: yes\n";
밑에서 #elif ABCD==2 => 2==2가 되므로
std::cout << "2: yes\n";이 됨
전체적으로 위 두개만 남게 됨
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #define ABCD 2 #include <iostream> int main() { #ifdef ABCD     std::cout << "1: yes\n"; #else     std::cout << "1: no\n"; #endif #ifndef ABCD     std::cout << "2: nol\n"; #elif ABCD == 2     std::cout << "2: yes\n"; #else     std::cout << "2: no2\n"; #endif } | 
Replace
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | #define MAX_UNIT16 65535 #define MAX(a,b) (((a)>(b))?(a):(b)) #include <iostream> int main() {     std::cout << MAX_UNIT16 << std::endl;     std::cout << MAX(10,100) << std::endl;     // std::cout << 65536 << std::endl;     // (((10)>(100))?(10):(100)) 과 동일 } | 
중복 헤더 파일 load 방지
#ifndef CAT_H
#define CAT_H
.
.
.
#endif
깔끔하게 #pragma once를 사용한다
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #define MAX_UNIT16 65535 #define MAX(a,b) (((a)>(b))?(a):(b)) #include <iostream> // standard library #include <limits> // user specific header constexpr int ABCD = 2; int main() {     std::cout << MAX_UNIT16 << std::endl;     std::cout << MAX(10,100) << std::endl;     // std::cout << 65536 << std::endl;     // (((10)>(100))?(10):(100)) 과 동일     // 그러나 replace는 좋지 않다.     // standard library 함수를 쓰자     // constexpr 을 사용하자     std::cout << std::numeric_limits<uint16_t>::max() << std::endl;     std::cout << std::max(10, 100) << std::endl;     std::cout << __FILE__ << std::endl; // 현재 cpp 파일 이름     std::cout << __LINE__ << std::endl; // 코드에서 몇번째 줄인지     std::cout << __DATE__ << std::endl; // 현재 날짜(컴파일 기준)     std::cout << __TIME__ << std::endl; // 현재 시간(컴파일 기준) } | 
header file은 컨트롤 + c ,컨트롤 v의 영역임(붙여넣기 기능)
header file에 상응하는 cpp 파일은 header file을 불러 온다.(붙여넣기 기능)
하지만 header file에 없는 별도의 함수를 추가할 수 있으며 이는 main 함수와 링킹 과정에서 합쳐진다.
'C' 카테고리의 다른 글
| c++ stack 공간, class, struct, 타입별 메모리 사이즈 (0) | 2021.06.22 | 
|---|---|
| c++ extern static 기록 정리 (0) | 2021.06.22 | 
| [C언어] 최소공배수 구하기 (정보처리기사 외) (0) | 2019.06.18 | 
| [c 언어] 소수의 개수 구하기 (1차원배열, do~while, while, if, 정보처리기사 외) (0) | 2019.06.18 | 
| [C 언어] 최대공약수 구하기 (정보처리기사 외) (0) | 2019.06.18 |