일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Pointer
- 전처리기
- Windows via c/c++
- TiDB
- 함수포인터
- Preprocessor
- Golang
- DBMS 개발
- 포인터
- Symbol
- DBMS
- 커널
- 구조와 원리
- getopts
- 포인터변수
- kernel
- 컴퓨터 강좌
- 긴옵션
- UNIX
- SQLite
- TiKV
- go
- Programming
- 한빛미디어
- newSQL
- bash
- FreeBSD
- UNIX Internals
- 약어
- OS 커널
- Today
- Total
목록전처리기 (2)
sonumb
목차. 1.File Inclusion 2.Macro Substitution 3.Contitional Inclusion 4.기타 Preprocessor의 핵심: `Preprocessing`은 링크전도 아닌 컴파일타임도 아닌 컴파일타임 전에 일어난다는 것이다. 1.File Inclusion 제목을 영어로 거창하게 적어놨지만 역시 핵심은 파일을 갖다 붙이겠다는 말이다. #include or #include "filename" 로 묶여진 파일은 implementation-defined rule에 의해 해당파일을 찾는다. ","로 묶여진 파일은 보통 해당파일(즉 #include "filename"이 쓰여진 파일)이 있는 폴더내에서 찾는다. 2.Macro Substitution #define #define 은 이래..
#define FOO1 #ifdef FOO1 # define MONTH 1 # define DAY 1 #elif FOO2 # define MONTH 2 # define DAY 6 #endif #include int main ( void ) { printf("%d월 %d일 \n" , MONTH, DAY ) ; return 0; } 위의 Preprocessor를 잘 보기 바란다. 여기서 사소한 퀴즈 두개. 위에서 #elif FOO2 는 과연 문법에 맞는 것 일까? 틀렸다 . #elif defined( FOO2 ) 이나 #else ifdef FOO2 로 해야된다. 사실 #elif FOO2 는 문법에 틀렸으나 컴파일이 잘된다. 무슨 일이 벌어졌나? 이전에 #define FOO2 가 0이 아닌 값을 가진다면 컴파..