A의 경우는 말그대로 CONFIG_XXX 라는 '변수'의 값을 1로 정의한거죠.
이건 그냥 const int config_xxx = 1; 이라는 문장과 동일하다고 보시면 되요.
config_xxx 라는 변수를 코드 내에서 사용하기 위한 문장입니다
B의 경우는 CONFIG_XXX 라는 심볼을 선언만 해둔겁니다.
이렇게 심볼을 선언해두는게 무슨 소용이냐 하면
쓰신 코드 밑에 나온거처럼, 헤더에서 전처리(인클루드, lib추가 등등)를 해야할 경우 중복처리를 막기 위해 #define해둔겁니다.
CONFIG_XXX 라는게 이미 선언되어있으면 #ifndef CONFIG_XXX 이하의 부분을 실행하지 않는거고
선언되어있으면 #ifdef CONFIG_XXX 이하를 실행하는거죠.
이와 관련된 설명읜 윗분이 거신 링크에 가서 보시느게 나을거같네요
둘다 같은거 아닌가요?
#ifdef은 상수가 지정되면 실행한다.로 알고 있습니다.
#if 에 한해서 상수에 값이 있어야 하는걸 헛갈리신거 같습니다.
여기에 잘나오네요.
http://blog.naver.com/hermet?Redirect=Log&logNo=150555815
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
A랑 B는 다르죠.
A의 경우는 말그대로 CONFIG_XXX 라는 '변수'의 값을 1로 정의한거죠.
이건 그냥 const int config_xxx = 1; 이라는 문장과 동일하다고 보시면 되요.
config_xxx 라는 변수를 코드 내에서 사용하기 위한 문장입니다
B의 경우는 CONFIG_XXX 라는 심볼을 선언만 해둔겁니다.
이렇게 심볼을 선언해두는게 무슨 소용이냐 하면
쓰신 코드 밑에 나온거처럼, 헤더에서 전처리(인클루드, lib추가 등등)를 해야할 경우 중복처리를 막기 위해 #define해둔겁니다.
CONFIG_XXX 라는게 이미 선언되어있으면 #ifndef CONFIG_XXX 이하의 부분을 실행하지 않는거고
선언되어있으면 #ifdef CONFIG_XXX 이하를 실행하는거죠.
이와 관련된 설명읜 윗분이 거신 링크에 가서 보시느게 나을거같네요
댓글 달기