4.5 기호적 상수와 전처리기 #define

공기훈·2021년 7월 22일
0

기호적 상수(symbolic constant)는 매우 편리하다.

#define PI 3.141592f 라고 위에 선언을 해주면, 귀찮게 많은 수를 입력하지 않아도 PI를 사용하면 되게 한다. 수식 자체를 대체하는 경우도 있다.
여기서 PI를 기호적 상수라고 한다.
하지만 컴파일러 입장에서는 쓰나 안 쓰나 똑같다.

  • 주의할 점!
    #define PI = 3.141592f 라고 쓰게되면 ' = 3.141592f' 를 인식해버린다.
    대문자로 쓰는 경우가 많다.
#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; 처럼 변경하려해도 컴파일이 안 된다.

profile
be a coding master

0개의 댓글