가능한 복제를 사용하는 것이 좋습니다 :
“static const” vs “#define” in CC/C++ - 그것은 const를 정적 또는 #DEFINE
내 첫번째 생각이 함축되어 있지만 혹시 이유가 #define
대신 const
을 사용해야하는 이유는 무엇입니까?
전역 변수를 설정 한 경우 왜 변경하고 싶습니까? 또한이를 전역 적으로 보호하고 싶지 않으십니까?
가능한 복제를 사용하는 것이 좋습니다 :
“static const” vs “#define” in CC/C++ - 그것은 const를 정적 또는 #DEFINE
내 첫번째 생각이 함축되어 있지만 혹시 이유가 #define
대신 const
을 사용해야하는 이유는 무엇입니까?
전역 변수를 설정 한 경우 왜 변경하고 싶습니까? 또한이를 전역 적으로 보호하고 싶지 않으십니까?
헌장은 일반적으로 #define
#define
이 텍스트 교체를 할 수있는 전처리 매크로입니다 대체합니다. 상수 또는 매크로를 정의하거나 다른 모든 일을 할 때 사용할 수 있습니다.
CONST는 컴파일 과정에서 서로 다른 시간에
이 두 가지 메커니즘이 발생 일정한 컴파일 시간을 정의하는 형식 안전한 방법이지만, 일반적으로, CONST는 #define
의 문제를 해결하기 위해 만들어졌습니다.
나는 거의 본 적이 한 사람들은
#define CONSTINT const int
그런 짓을하지만 합법적이다.
const
은 서브 루틴이 변경할 수 없도록 런타임에 전달되는 변수에만 관련이 있습니다. #define
은 정의한 내용을 사용자가 정의한 것으로 바꾸는 선행 처리 컴파일 타임 명령입니다. 그러므로, 그들은 다른 목적을위한 것입니다. 당신은 ... 정말 지금 당신이 다른 무언가를 요구하는 질문을 편집 한 이해가되지 않는 define
와 const
을 사용할 것인지의
편집이, 원래의 질문에 대한 답변입니다.
#define
변수를 정의하지 않으므로 어쨌든 변경할 수 없으므로 질문에 의미가 없습니다. 전처리 교체 99
의 매크로 FOO
대체
#define FOO 99
int main()
{
FOO = 98;
}
때문에, 그래서 컴파일러는이 코드를보고 :
이조차 할 수 없습니다
int main()
{
99 = 98;
}
그리고 분명 그 넌센스입니다. 당신은 리터럴에 할당 할 수 없습니다, 변수가 아닙니다 (const 또는 not) 그것은 단지 값입니다.
요청한 정의의 예를 들려 줄 수 있습니까? –
"#define과 함께 const 사용"이란 무엇을 의미합니까? – juanchopanza
"#define 대신 const를 사용하는 이유"는 잘못된 질문입니다. "왜 const 대신 #define을 사용합니까?" 대답은 "전혀 이유가 없다"입니다. –