본문 바로가기

전처리기4

전처리기(4) 조건부 컴파일 지시자에 대해서 알아 보자. #ifdef - #endif #include #define MAX 10 void main() { #ifdef MAX // MAX가 지정이 되어 있기 때문에 실행한다. printf( "%d\n", MAX ); #endif } 실행 결과 = 10 #ifndef - #endif #include void main() { #ifndef MAX // MAX가 지정이 되어 있지 않기 때문에 실행한다. printf( "%d\n", 10 ); #endif } 주로 ifndef는 한번만 실행하기 위해서(특히 헤더파일 추가에 대해서) 많이 사용하게 되는데. 사용은 다음과 같이 하면 된다. #ifndef _TEST_H_ #define _TEST_H_ // 이제부터는 아무리 많이 헤더.. 2010. 3. 10.
전처리기(3) 매크로 상수라는게 존재 하는데 이전에 포스팅 했었던 __FILE__, __LINE__ 와 같은 개념이다. 따로 소스코드와 결과를 올리기 보단 그 이외에 또 무엇이 있는지만 살펴 보자. __TIME__ 현재 컴파일 되는 시간 __DATE__ 현재 컴파일 되는 날짜 __PASCAL__ 컴파일 옵션 중 -p 옵션이 설정되어 PASCAL형으로 호출을 하게 될때 사용 한다고 한다. __CDECL__ 위와 반대의 경우인데 -P옵션이 설정 되어 있지 않을때, 즉 C형 호출을 하게 될때 사용한다고함 _Windows 컴파일을 Windows 방식으로 할 때 이 매크로가 정의된다. 솔직히 PASCAL, CDECL, _Windows 는 정확히 뭔 말인지 잘 모르겠다...... 2010. 3. 10.
전처리기(2) #include #define MAX 10 #define TEST( a, b ) if( a < b ) { a = b; } #define PRINT(str) printf( #str"=%s\n", str ) #define PLUS( i, j ) (i##j) void main() { int a = MAX; int b = 20; char* ch = "TEST!!!"; printf( "%d %d\n", a, b ); TEST(a, b); printf( "%d %d\n", a, b ); PRINT(ch); printf( "%d\n", PLUS(10, 10) ); } #define, 이것 또한 많이 쓰는 전처리기중에 하나인데, 소스를 참고하자. 따른 설명은 필요 없을 것 같고 #를 사용하면 문자로. ##를 사용하면 .. 2010. 3. 10.
전처리기(1) 전처리기에 대해서 알아 보자. 가장 기초적인 전처리기는 #include 가 있을 것. #include 는 특정 file안에 있는 함수를 추가, 사용하기 위해서 사용되는데, #include 를 사용하면 c에서 제공하는 표준 헤더파일에서 검색 #include "" 를 사용하면 파일이 존재하는 폴더에서 헤더를 찾는다. (소스코드는 패스) 2010. 3. 10.