기호적 상수(symbolic constant)는 매우 편리하다.
#define PI 3.141592f
라고 위에 선언을 해주면, 귀찮게 많은 수를 입력하지 않아도PI
를 사용하면 되게 한다. 수식 자체를 대체하는 경우도 있다.
여기서PI
를 기호적 상수라고 한다.
하지만 컴파일러 입장에서는 쓰나 안 쓰나 똑같다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define PI 3.141592f
#define AI_NAME "Jarvis" // Jarvis를 바꾸고 싶을 때 일일이 찾아다니지 않고 위에만 변경해주면 된다.
int main()
{
float radius, area, circum;
printf("I'm %s.\n", AI_NAME);
printf("Please, Input radius.\n");
scanf("%f", &radius);
area = PI * radius * radius; // area = pi*r^2
circum = 2.0f * PI * radius; //circum = 2.0 * pi * r
printf("Area is %f\n", area);
printf("Circumference is %f\n", circum);
// TODO : wrong usage, strings, const
return 0;
}
물론, float
를 사용해서 float pi = 3.141592f;
라고 선언을 할 수 있다. 그러나 이런 기호적 상수가 코딩 중간에 다른 수로 바뀌어 버리게 되면, 매우 힘든 코딩이 될 것이다.
그러므로 요새는 const float pi = 3.141592f
형태로 많이 사용하곤 한다.
const가 붙게 되면, 뒤에서 pi = 1.0f;
처럼 변경하려해도 컴파일이 안 된다.