전처리기 전개 후 코드 열람

emptysky의 이미지

간단한 예를 들어 보겠습니다.

#define printexpr1(expr) printf(#expr "=%d\n",expr)

void main()
{
   ...
   printexpr1(3+1);
   ...
}

라는 코드가 있을때

void main()
{
   ...  
   printf("3+1" "=%d\n",3+1);      /* 매크로가 전개됨 */
   ...
}

이렇게 매크로가 전개된 후의 코드를 볼 수 있는 방법이 있을까요?
복잡한 매크로 함수의 경우 보기가 영 불편해서...
gdb로 삽 좀 파봤지만 안되더군요 :(
litdream의 이미지

$ gcc -E [src.c]

프리 프로세스 까지만 처리한뒤 코드를 보여줍니다.

삽질의 대마왕...

emptysky의 이미지

오옷~ 굿입니다. :D

『 아픔은.. 아픔을 달래줄 약이 무엇인지 알면서도 쓰지 못할 때 비로소 그 아픔의 깊이를 알수가 있음이다. 』
『 for return...』

pynoos의 이미지

평소 하시던대로 하시고

--save-temps 옵션을 줘도 파일로 만들어 집니다.

palsuet의 이미지

cpp <파일명>

해도 됩니다.

feel the gravity