연구실/파편화된 기록들
C/C++ 전처리 매크로(Predefined Macros) __DATE__, __TIME_ 값을 정수로 바꾸기
최익필
2010. 12. 9. 16:52
이 포스트의 목적
- __DATE__ 와 __TIME__ 값이 정수로 표기하기 위해
이 포스트의 준비물
- Firefox 4.0 b7
- g++ 4.3.2
- vim
- putty
참조 링크
- MSDN - Predefined Macros (C/C++)
- Roman's Knowledgebase 의 Convert __DATE to unsgiend int - #define 으로 처리한 처리한 방법
- http://stackoverflow.com/questions/1765014/convert-string-from-date-into-a-time-t - time_t로 바꾸는 방법(아름다운 코드)
__DATE__, 와 __TIME__ 은 무엇인가?
- C/C++ 에서 전처리 매크로에 속한다.
- __DATE__ 는 파일이 컴파일된 날짜를, __TIME__은 파일이 컴파일된 시간을 문자열로 표기한다.
- __DATE__ 는 char[12] 되어 있으며, __TIME__은 char[9] 로 되어 있다.
어떻게 __DATE__ 와 __TIME__을 정수로 바꿀 수 있는가?
여담
- 코드가 짦을 수록 가독성이 좋다는 것은 경우에 따라 다르지만, __DATE__ 를 바꾸는 경우는 충분히 동의한다.
- 만약 sscanf 를 쓸수 없는 환경이라면, 매크로를 문자열로 복사하고, 필요없는 자리에 0 값을 넣으면 된다.
- C/C++에서 문자열의 파싱은 0이 올때까지 이다.
:wq