• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

define 과 cost

21.02.13 19:52 작성 조회수 196

1

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

답변 3

·

답변을 작성해보세요.

1

파가니님의 프로필

파가니

질문자

2021.02.18

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

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

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 모두 사용할 수 있음
}