본문 바로가기

컴퓨터 언어/C

상수 만들기

배운내용 정리

변수는 변할 수 있는 수라면, 상수는 변하지 않는 수이다. const, 매크로, enum을 통해 상수를 설정할 수 있다.

1. const

constant의 약자로, '변함없는' 이라는 뜻을 가지고 있다. 변수를 선언할 때 앞에 const를 붙여 상수로 만들 수 있다.

int main() {
	const float PI = 3.14159;
	printf("π = %.2f\n", PI);
}

이 코드에서 PI는 3.14159로 값이 고정되었기 때문에 PI를 출력하면 3.14159가 나온다.

 

2. 매크로

#define을 써서 정의한다. 

#include <stdio.h>
#deifne PRINT_HELLO printf("Hello, World!");
int main(){
PRINT_HELLO
}

PRINT_HELLO를 printf("Hello, World!"); 로 정의한 코드이다. 메인함수에 PRINT_HELLO를 넣으면 Hello, World!가 출력된다.

#define SQUARE(X) (X * X)

int main(){
int a;
scanf("%d", &a);
printf("%d\n", SQUARE(a));
}

식도 정의할 수 있고,

#define FOR(I,S,E) for (int I = S; I <=E; I++)
#define LOOP while (true)

int main(){
FOR(i, 1, 10){
printf("%d", i);
}
LOOP{
printf("*");
}
}

for문, loop문 등을 정의해둔 후 변수만 바꾸면 다양한 곳에 활용할 수 있다.

 

3. enum

enum은 열거형(enumerated type)이라고 부른다. 서로 연관된 함수들의 집합이다. 순서를 매기지 않아도 자동으로 순서를 정해주고, 중간에 직접 지정할 수도 있다. 자료형을 쓰지 않아도 알아서 해준다.

enum EGameState{
GAMESTATE_MAINMENU,
GAMESTATE_PLAYING,
GAMESTATE_PAUSED,
GAMESTATE_GAMEOVER
};

int main(){
int currState=0;
while(true){
switch(currState){
case GAMESTATE_MAINMENU:
break;
case GAMESTATE_PLAYING:
break;
case GAMESTATE_PAUSED:
break;
case GAMEOVER:
break;
}
}

switch문과 enum을 활용해서 간단한 게임 목차를 만들었다.

'컴퓨터 언어 > C' 카테고리의 다른 글

비트 연산  (0) 2022.03.11
Typedef와 구조체  (0) 2022.02.28
재귀함수  (0) 2022.02.28
프로토타입  (0) 2022.02.28
함수의 반환  (0) 2022.02.28