인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

새싹비빔밥님의 프로필 이미지

작성한 질문수

홍정모의 따라하며 배우는 C언어

4.6 명백한 상수들

그래서 manifes constants란?

작성

·

76

1

안녕하세요, 4.6강 명백한 상수들(manifest constants) 강의를 듣고 의문이 들어 질문 남깁니다. 교수님께서 보여주신 것들은 어찌보면 manifest constants, 명백한 상수들의 몇몇 예시처럼 느껴지는데 이를 정의한다면 어떻게 말을 할 수 있을까요? #define을 통해 프로그래머들이 합의한/혹은 이미 정해져 있는(약속되어 있는)상수들 같은 거라고 이해하면 될까요?

한편으로, 말 그래도 상수는 변하지 않고 정해져 있는 값이기에 앞에 '명백한'이 붙는 게 조금 사족처럼 느껴지는데 vague constant처럼 서로 대치되는 개념이 있는 건가요?

궁금합니다!

답변 2

1

Soobak님의 프로필 이미지

안녕하세요? 질문&답변 도우미 Soobak 입니다.

 

코드에서 상수 값을 명확하고 의미 있는 이름으로 정의하여 가독성을 높이는 것을 의미합니다.

강의에서의 예시처럼 #define PI 3.141592 과 같이 정의하여,
int area = PI * rad * rad; 와 같이 사용하는 경우처럼 상수 값에 의미 있는 이름을 부여하여 목적을 명확히 강조하는 것입니다.

int area = 3.141592 * rad * rad; 와 같이 상수를 바로 사용할 수도 있지만,
2147483647 대신 INT_MAX 라고 이름을 붙여서 사용하는 것이 의미를 더 명확히 하고 유지보수를 쉽게 할 수 있도록 해줍니다.

참고로, 상수를 이름 없이 사용하는 경우에 대해서 매직 넘버 라고 표현하기도 하며, 매직 넘버를 많이 사용하는 것은 코드의 가독성을 떨어뜨리는 측면에서 지양해야 하는 코드 스타일 중 하나입니다.

1

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 새싹비빔밥님.

‘Manifest Constants’는 프로그래밍에서 자주 사용되는 개념으로, 일종의 “명시적인 상수”를 의미합니다. 일반적으로 #define 지시어를 사용하여 코드 내에서 고정된 값을 명백히 설정하는 데 사용됩니다. 이를 통해 코드의 가독성을 향상시키고, 특정 값이 왜 사용되고 있는지 명확하게 이해할 수 있게 해 줍니다.

말 그대로 상수는 변하지 않는 값을 의미하지만, ‘명백한’이라는 표현은 그런 상수의 사용 의도를 명확하고 명시적으로 표현했다는 점을 강조하는 것입니다. 즉, 변수나 복잡한 식 대신 #define을 사용해 상수의 이름을 부여하고 그 값을 설정함으로써 코드의 가독성과 유지보수성을 높이는 데 목적이 있습니다.

특히 이런 상수가 ‘약속된 값’이라면, 예를 들어 프로그램 전역에서 동일한 의미로 쓰이는, 흔히 사용되는 상수를 정의해두는 데 유용합니다. 이는 기업이나 개발 팀 내에서 코드 스타일이나 규약에 따라 정의될 수 있습니다.

‘Vague Constants’와 같은 대치되는 개념은 없지만, 일반적으로 ‘매직 넘버’라 부르는 것이 있습니다. 매직 넘버는 코드 내에서 특별한 의미 없이 값 그대로를 사용하는 상수를 의미하며, 코드의 이해를 어렵게 만들어 피하는 것이 좋습니다.

이와 관련해 다음 글들을 참고해 보시면 좋습니다:
- 매직 넘버를 없애기 위한 노력 - 매직 넘버의 문제점과 제거 방법을 다룬 글입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.