#if 문이라던가 각종 전처리기용 문구들은
여러가지 확장을 통해서 컴파일을 하기 때문에 source insight 등의 힘을 빌려도 분석하기 어려운 면이 있다.
일반적으로 컴파일러는 전처리기 - 컴파일 - 어셈블 - 링크 과정을 거치는데(아마도?)
전처리기 까지만 거친 결과를 stdout 으로 출력해준다.
[링크 : http://linux.die.net/man/1/gcc]
#include 하는 모든 파일을 확장하기 때문에, #include <stdio.h>만 해도 내용이 엄청 길어진다.
그리고 줄단위로 처리하기 때문에 사라진 #if 문 대신 엔터만 남아 위와 같이 휑~하게 나왔다.
[링크 : http://cafe.naver.com/devctrl/949]
여러가지 확장을 통해서 컴파일을 하기 때문에 source insight 등의 힘을 빌려도 분석하기 어려운 면이 있다.
일반적으로 컴파일러는 전처리기 - 컴파일 - 어셈블 - 링크 과정을 거치는데(아마도?)
전처리기 까지만 거친 결과를 stdout 으로 출력해준다.
$ man gcc -E Stop after the preprocessing stage; do not run the compiler proper. The output is in the form of preprocessed source code, which is sent to the standard output. Input files which don't require preprocessing are ignored. |
[링크 : http://linux.die.net/man/1/gcc]
$ cat test.c #if 1 int test; #else int tt; #endif int main() { return 0; } $ gcc -E test.c # 1 "test.c" # 1 "<built-in>" # 1 "<command-line>" # 1 "test.c" int test; int main() { return 0; } |
#include 하는 모든 파일을 확장하기 때문에, #include <stdio.h>만 해도 내용이 엄청 길어진다.
그리고 줄단위로 처리하기 때문에 사라진 #if 문 대신 엔터만 남아 위와 같이 휑~하게 나왔다.
[링크 : http://cafe.naver.com/devctrl/949]
'프로그램 사용 > gcc' 카테고리의 다른 글
gcc로 정적 컴파일 하기 (static compile using gcc) (0) | 2010.02.11 |
---|---|
gcc 에서 지원하는 언어목록 알아보기 (support languages of GCC) (4) | 2010.02.10 |
gcc에서 기본 include 디렉토리 변경하기 (0) | 2009.09.21 |
gcc 전용 switch - case 문? (0) | 2009.05.28 |
문자열에 콘트롤 문자 넣기 (0) | 2009.02.18 |