리터럴(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 |
---|