인프런 커뮤니티 질문&답변

파가니님의 프로필 이미지
파가니

작성한 질문수

[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문

const 제한자와 데이터형 변환

define 과 cost

해결된 질문

작성

·

289

1

c++ 작업중에 cost를 쓰지 않고 오로지 define으로만 작업하면 무슨 문제가 생기나요?

답변 3

1

파가니님의 프로필 이미지
파가니
질문자

답변을 제가 이해하는게 맞는지 모르겠으나 

전역변수 지역변수와 비슷한 이론인가요?

0

판다코딩님의 프로필 이미지
판다코딩
지식공유자

변수의 사용범위만을 놓고 본다면 정확합니다.

define은 전역변수처럼 어떤 함수에서든 호출할 수 있고,

const는 지역변수처럼 변수가 호출된 함수 내부에서만 사용할 수 있도록 코딩할 수 있습니다.

0

판다코딩님의 프로필 이미지
판다코딩
지식공유자

define과 const 모두 상수를 만드는 C/C++ 키워드입니다.

따라서 상수를 사용하고자 할 때 define 혹은 const 모두 사용가능하며,

오로지 define으로만 작업한다고 하더라도 큰 문제는 발생하지 않습니다.

다만, define의 경우에는 주로 전처리 지시자가 선언되는 부분에 선언되기 때문에

모든 block에서 접근할 수 있습니다.

그에 반해 const는 선언된 블록 내부에서만 사용할 수 있습니다.

따라서 사용되는 변수의 지정범위를 결정할 수 있어야 하는 C++의 기조상 const가 보다 바람직한 사용방법입니다.

#define MAX 4

int main() {
    //MAX만 사용할 수 있으며, TEMP는 사용할 수 없음,
    return 0
}

void func() {
    const int TEMP = 4;
    //MAX와 TEMP 모두 사용할 수 있음
}
파가니님의 프로필 이미지
파가니

작성한 질문수

질문하기