잠토의 잠망경

[알고리즘] 디버깅 Tip 본문

공부/알고리즘

[알고리즘] 디버깅 Tip

잠수함토끼 2021. 7. 31. 16:43

고민

프로그램 개발을 하다보면 디버깅을 많이 하게된다.

watch를 통해서 변수를 확인하는 것도 방법이지만 보통은 printf 출력으로 내용 확인을 진행한다.

이런 경우 원래 출력하려하는 것이 아닌 임시적인 것이므로 불필요한 출력이 발생하게된다.

이를 좀더 깔끔하게 하는 방법을 생각해봤다.

TIP

#define 문을 이용하여 printf를 대치하는 방식이다.

#define PT printf

예시 1

일반적으로 사용중인 printf이다. 당근 출력된다.


#include<stdio.h>

#define PT printf

int main(void)
{

    for (int i = 0; i < 10; i++)
    {
        printf("%d\n", i);
    }

    return 0;
}

출력

예시 2

define문으로 대치된 PT를 사용한 경우이다.
당근 출력된다.

#include<stdio.h>

#define PT printf

int main(void)
{

    for (int i = 0; i < 10; i++)
    {
        PT("%d\n", i);
    }

    return 0;
}

출력

예시 3

define의 PT가 empty로 설정되었다.
이런경우 PT("%d\n", i); 와 ("%d\n", i); 이것은 같은 문장이된다.

#include<stdio.h>

#define PT //printf

int main(void)
{

    for (int i = 0; i < 10; i++)
    {
        PT("%d\n", i); // == ("%d\n", i); 
    }

    return 0;
}

출력 없음

예시 4

컴파일오류를 확인해보자. 안난다.

#include<stdio.h>

#define PT //printf

int main(void)
{

    for (int i = 0; i < 10; i++)
    {
        PT("%d\n", i);

        ("%d\n", i); // PT("%d\n", i); 와 같음

    }

    return 0;
}
Comments