상수 (컴퓨터 프로그래밍)

컴퓨터 프로그래밍에서 정상적인 실행 중에 프로그램에 의해 변경되어서는 안 되거나 변경될 수 없는 값

상수(constant)는 컴퓨터 프로그래밍에서 정상적인 실행 중에 프로그램에 의해 변경되지 않는 이다. "상수"(constant)와 "명명된 상수"(named constant)라는 용어는 같은 의미로 사용되긴 하지만 식별자와 연결된 경우 상수를 "명명했다"라고 한다. 이는 정상적인 실행 중에 변경될 수 있는 값을 가진 식별자인 변수와 대조된다. 단순화하기 위해 상수의 값은 그대로 유지되지만 변수의 값은 다양하므로 둘 다 명명이 된다.

상수는 프로그래머와 컴파일러 모두에 유용하다. 프로그래머의 경우 상수는 자체 문서화 코드 형태이며 정확성에 대한 추론을 허용하는 반면, 컴파일러의 경우 불변성 가정이 위반되지 않았는지[a] 확인하는 컴파일 타임런타임 검사를 허용한다. 그리고 일부 컴파일러 최적화를 허용하거나 단순화한다.

종종 간과되는 미묘한 구별과 함께 상수의 일반적인 개념에 대한 다양한 구체적인 구현이 있다. 가장 중요한 것은 컴파일 타임(정적 값) 상수, 런타임(동적 값) 상수, 불변객체 및 상수 유형(const)이다.

컴파일 타임 상수의 일반적인 예로는 수학 상수, 표준 값(여기서는 최대 전송 단위) 또는 내부 구성 값(여기서는 줄당 문자)이 있다. C 언어의 예시는 아래와 같다:

const float PI = 3.1415927;  // maximal single float precision
const unsigned int MTU = 1500;  // Ethernet v2, RFC 894
const unsigned int COLUMNS = 80;

각주

편집
  1. In some cases this can be circumvented, e.g. using self-modifying code or by overwriting the memory location where the value is stored.