본문 바로가기

Programming

리터럴(literal)과 상수(constant)

리터럴(literal)과 상수(constant)둘은 둘 다 변하는 않는 값으로 같은 의미로 알고 있었지만 차이점이 존재합니다

상수는 변수중에 변하지 않는 변수를 의미합니다 프로그램이 실행되는 동안 메모리에 저장된 데이터의 값을 변경할 수 없습니다 

리터럴 상수는 변수에 대입하는 데이터 그자체를 의미합니다

간단한 예제를 보여드리겠습니다

const int a = 1;

앞에 const 를 붙임으로써 a는 상수(constanst)가 됩니다 a에 대입되는 값 1이 리터럴(literal)입니다

상수변하지않는 변수를 의미하며(메모리 위치) 메모리 값을 변경할 수 없습니다

리터럴변하지않는 데이터(메모리 위치 안의 값)를 의미합니다

여담으로 define을 사용하는 것보다 const를 사용하는 것이 다 효율적이라고 합니다

define은 단순 치환이기 때문에 오류가 발생했을 때 찾기 어려운데 반하여 const는 오류도 찾기 쉽고 define의 치환에 의해 늘어나는 코드의 최종길이의 차이도 발생하게 된 됩니다. 가급적이면 define -> const & enum & inline

'Programming' 카테고리의 다른 글

메모리의 구조 Code, Data, Heap, Stack  (0) 2021.11.25