Dev Tool Tips/C/C++2008. 6. 25. 14:33
다른 사람이 만든 코드를 보거나 복잡한 소스에서
특정 definition이 되어 있는지 아닌지를 찾기가 어려운 경우가 있습니다.

예를 들면, 아래에서 ABDEEFG가 define되어 있는지 아닌지를 판단하기가 어렵다면

#ifdef ABDEEFG
foo_bar(x)
#else
foo_bar(y)
#endif

다음과 같이 에러를 강제로 발생하게 하여 알 수 있습니다.

#ifdef ABDEEFG
#error "ABDEEFG Defined"
foo_bar(x)
#else
#error "ABDEEFG NOT Defined"
foo_bar(y)
#endif

컴파일을 하다가 위의 코드를 만나게 되면 "ABDEEFG Defined" 혹은 "ABDEEFG NOT Defined"를 출력하면서 컴파일을 중단하게 됩니다.
Posted by young.h.rhie
Dev Tool Tips/C/C++2008. 6. 23. 14:01
터미널 윈도우 글자 색깔
ANSI COLOR 이용

#define SETCOLOR_SUCCESS        "\033\1331;32m"
#define SETCOLOR_FAILURE        "\033\1331;31m"
#define SETCOLOR_WARNING        "\033\1331;33m"
#define SETCOLOR_NORMAL         "\033\1330;39m"

TEST in YOUR TERMINAL

echo -e "\033[01;37m" - white
echo -e "\033[01;36m" - light cyan
echo -e "\033[01;35m" - light magenta
echo -e "\033[01;34m" - light blue
echo -e "\033[01;33m" - yellow
echo -e "\033[01;32m" - light green
echo -e "\033[01;31m" - light red
echo -e "\033[01;30m" - dark gray

echo -e "\033[22;37m" - gray
echo -e "\033[22;36m" - cyan
echo -e "\033[22;35m" - magenta
echo -e "\033[22;34m" - blue
echo -e "\033[22;33m" - brown
echo -e "\033[22;32m" - green
echo -e "\033[22;31m" - red
echo -e "\033[22;30m" - black
Posted by young.h.rhie
Dev Tool Tips/C/C++2008. 6. 12. 11:35

char* get_basename(const char *path)
{
 const char *p;
 p = strrchr(path, '/');
 if (p == NULL)
  return (path);
 return (p + 1);
}

char* get_extension(const char *path)
{
 const char *p = path;
 p = strrchr(path, '.');
 if (p == NULL)
  return ("");
 return p;
}

Posted by young.h.rhie
Dev Tool Tips/C/C++2008. 5. 30. 11:21
보통의 경우 .c를 컴파일해서 .o로 만들어내므로 이 것을 간단히 적는데 다음과 같다.

.c.o:
     $(CC) $(CFLAGS) -o $@ $<

여기서 $@와 $<과 같은 것들이 기본 매크로다. 흔히 기본 매크로를 살펴보자

$@ target 파일 이름
$< 첫번째 depndency
$^  모든 dependencies(공백으로 구분)
Posted by young.h.rhie
Dev Tool Tips/C/C++2008. 5. 15. 17:21

/*UNEXPECTED BEHAVIOR*/


#define dbg_print(x) my_print x

if(g_test)
    do__true();
else
    //dbg_print("Oh...\n");
do_common();


Posted by young.h.rhie
Dev Tool Tips/C/C++2008. 5. 13. 19:36
#define PRINTOUT(x) printf("string to print is " #x "\n")

#x means x -> "x"
Posted by young.h.rhie