문제

일반적으로,나는 때때로 사슬의 중첩된 매크로 몇 전처리 조건적 요소들의 정의.이 괴로울 수 있는 디버깅하기 때문에 하드 직접 확인하기 위해서는 실제 코드는 실행되고 있습니다.

얼마 전에 나는 막연하게 기억을 찾는 compiler(gcc)플래그를 확장하고 있었는데 문제가 작동이 점점에서습니다.

도움이 되었습니까?

해결책

gcc-E 것 출력 전처리된 소스 stdout.

다른 팁

에 대한 MSVC 사용자,당신을 마우스 오른쪽 단추로 클릭하면 파일/프로젝트,설정을 확인하고 변경의 파일 속성을 출력 전처리된 소스(일반적으로 obj directory).

이 적용되지 않을 수 있습니다 여러분의 상황에서는,하지만 매크로 진행을 방해 디버깅,그리고 자주 남용하고 피할 수 있습니다.

를 대체할 수 있습니다 그들에게 인라인 기능이나 그렇지 않으면 그들을 모두 제거까?

당신은 아마 시작 멀리 움직이 양식을 매크로를 사용하여 시작 인라인 및 템플릿입니다.

매크로는 오래된 도구,오른쪽에 도구로 때로는.마지막으로 기억 printf 는 당신의 친구(실로 printf 없는 나쁜 친구를 때는 멀티스레드는 물건)

디버깅 dissasembly 상징으로 로드합니다.

gcc-저장-온도 작성됩니다.i(또는.ii 파일에 대한 C++)는 출력의 C 전처리기 전에,그것은 가을 컴파일러입니다.이될 수 있습니다.

GCC 와 호환되는 컴파일러-E 옵션을 사용하는 출력 전처리된 소스 표준다.

gcc -E foo.cpp

태양 스튜디오도 이것을 지원하기:

CC -E foo.cpp

하지만 더 나은입니다-xdumpmacros.자세한 정보를 찾을 수 있습니다 에서 태양 문서도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top