C 프로그래밍을 할 때, variable 값이 수정되면 안되는 경우, Constants라는 특별한 타입의 variable로 선언을 합니다.


기존의 variable 선언 방식으로 간단한 프로그램을 짜보았습니다.

num = 5와 같이 선언을 하고, 후에 num = 7이라고 값을 업데이트 했습니다.

num이라는 variable의 값이 변화하는 것을 볼 수 있습니다.

#include <stdio.h>
#include <stdlib.h>

int main() {
		int num = 5;
		printf("%d", num); // 5 //
		num = 7;
		printf("%d", num); // 7 //
		return 0;
}

하지만 예를 들어 이 num이라는 값이 바뀌면 안되는 경우라고 생각해봅시다. 프로그램 상 그냥 아예 연산을 안해버리면 될 수도 있지만, 코드가 길어지다보면 이를 잊어버리고 실수로 값을 바꾸기 쉽습니다. 이를 constant로 variable을 선언하는 과정은, 이와 같은 실수를 방지하기 위한 안전장치를 만든다고 생각하시면 좋습니다.

#include <stdio.h>
#include <stdlib.h>

int main() {
		const int num = 5;
		printf("%d", num); // 5 //
		num = 7;
		printf("%d", num); // 7 //
		return 0;
}

해당 코드를 실행하면 아래와 같은 에러를 볼 수 있습니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ae789a46-a87b-4ca9-8305-eee4a83f5ae8/Untitled.png

보통 constant들을 선언할 때에는, 추후에 프로그램에서 기존의 수정 가능한 variable들과 구분하기 위해 모두 대문자로 표기합니다.

예를 들어, 위의 코드에서는 num이라고 칭하였지만, 이 코딩 컨벤션을 따르면 NUM이라고 선언을 합니다. 아래 코드에 예제를 적어두었습니다.

#include <stdio.h>
#include <stdlib.h>

int main() {
		const int FAVOURITE_NUM = 5;
		printf("%d", FAVOURITE_NUM); // 5 //
		return 0;
}