안녕하세요? 레조입니다.
define구문 같은경우 k의 값이아니라 k를 재정의한 것입니다.
즉 k = 1000이라는 것이지요.(대입이 아님.-.-;)
변수의 타입이 아니니 sizeof같은 것이나 컴파일러의 타입오류
등등으로부터 채크되지 않아 때로는 심각한 버그를 만듭니다.
궂이 타입을 말하자면 void*입니다.
그래서 C++의 경우 const int k = 1000;
이런식으로 상수 변수를 define구문 대신 사용해서 컴파일러에게
타입오류가 났을때 쉽게 찾아낼 수 있게 합니다.
서영재 님이 쓰신 글 :
: #define k 1000
:
: 이라고 선언했다면
: k는 문자열로 1000을 기억하나요?
: 아님 정수로 1000을 기억하나요?
:
: sizeof로 계산을해봤는데.. 이것도, 저것도 아닌거 같아 이렇게 올립니다.
:
: 답변 부탁드리겠습니다.
|