unix라는 변수명
글쓴이: feanor / 작성시간: 수, 2009/10/28 - 8:46오후
다음과 같은 C 프로그램을 (UNIX 환경에서) 컴파일하면 에러가 납니다.
/* unix.c */ int unix;
$ gcc -c unix.c unix.c:2: error: expected identifier or ‘(’ before numeric constant
반면 다음 프로그램은 그렇지 않죠.
/* not_unix.c */ int not_unix;
-E 옵션으로 프리프로세서만 실행해보면 이유를 알 수 있습니다.
$ gcc -E unix.c # 1 "unix.c" # 1 "built-in" # 1 "command-line" # 1 "unix.c" int 1;
-dM 옵션을 주면 미리 정의된 매크로들을 볼 수 있습니다.
$ gcc -E -dM unix.c | grep unix #define __unix__ 1 #define __unix 1 #define unix 1
unix가 1로 치환되는 것은 #ifdef unix 같은 코드를 위해서입니다. -ansi 옵션을 주면 밑줄 없는 형태를 정의하지 않습니다.
$ gcc -ansi -E -dM unix.c | grep unix #define __unix__ 1 #define __unix 1
이 글을 쓰게 된 동기는 이 블로그 때문이고, -dM 옵션과 -ansi 옵션에 대한 정보는 gcc 매뉴얼을 참고했습니다.
댓글
reply this post
Every human all over the society would like to be unique, but does not know the way to do that. But billions of people find the free ringtones or free downloadable ringtones to become original.
댓글 달기