이번에는 상수에 대해 간단히 설명하겠습니다.
상수
상수는 그 값을 지정 했다면 절대로 값을 변경 할 수가 없습니다.
만약에 상수의 값을 변경하려고 시도를 할 경우 바로 오류가 뜹니다.
상수를 선언하기 위해
상수를 선언하려면 일단 #define 과 const가 있습니다.
일단 #define에 대해 설명하겠습니다.
#define
#define 이것도 역시 상수입니다. 만약 값을 변경하려 시도 했다면 오류가 뜨죠.
선언 하는 방법입니다.
#define 변수이름 (값)
이왕이면 #include 아래에다 해주시는게 좋습니다.
#define UP 72
#define PI 3.14
#define MAX 100
이렇게 하는데요. UP 72 라 한 까닭은 아스키 코드에서 72는 위를 뜻하기 때문에
#define UP 72로 정했습니다.
이번에는 PI 3.14라 한 까닭은 PI가 파이입니다. 자기가 상수나 변수를 선언할 때 의미 있는
이름으로 해주시면 정말 좋으므로 저는 PI라 했습니다. PI는 3.14159...... 쭉 있지만
반올림하면 3.14만 사용합니다. 그래서
#define PI 3.14라고 했습니다.
이번에는 MAX 100 이라 한까닭은 그냥 맥스값 -> 최대값을 뜻합니다. 저는 최대값을 100으로 선언했습니다.
자기가 상수나 변수를 선언하는건 자기 마음대로 이지만
선언하시려면 프로그램과 관련된 변수 이름을 해주시면 더욱더 좋습니다.
이런 습관을 기르시면 코드 해석때 쉽게 이해 할 수가 있을것입니다.
지금까지 C언어 상수 강좌 였습니다.
메모리라던가 프로그램 루틴의 명확한 구조를 알지 않고 프로그램언어만 하시는 분들이 착각하기 쉬운 일이죠.
상수라는건 값을 선언과 동시에 완전히 고정시킨다는 겁니다. 즉 외부에서 아무리 값을 넣거나 변경하려 해도 벽에 가로 막힌것 처럼요.
변수를 선언했다면 컴파일 과정에서 변수는 메모리에 바인딩됩니다.
이 때 const를 쓰게 되면 메모리엔 마치 하드보안기 처럼 더 이상 쓰기가 금지됩니다.
하지만 #define의 경우는 단지 우리가 게임에서 흔히 사용하면 ctrl+1을 누르면 "안녕하세요"를 출력하는 것과 같은 식입니다.
그것을 설정하는것이죠.
조금더 고급프로그램을 짜시거나 C언어에 대해 더 배우시다 보면 함수의 상수화를 알 수 있습니다. 이때 가면
#define과 const의 차이가 얼마나 극명한지 아실겁니다.