프로그래머 공간/C언어
[C언어] 상수(Constant)
ikohong
2019. 11. 29. 10:14
728x90
반응형
[C언어] 상수(Constant)
By i!kohong(아이코홍)
상수
프로그램에서 값이 변경되지 않는 요소이다.
상수는 값이 메모리에 저장되지 않고 한 번만 사용된 다음 없어지는 임시 값(temporary value)이다.
상수의 종류
- 리터럴 상수(Literal)
- 매크로 상수
리터럴 상수(Literal)
값 자체를 직접 사용하는 것이다.
상수형 | 구분 | 예시문 |
문자형상수 | 일반 문자 | 'a','b','c' |
특수 문자 | '\t','\n','\\','\xa' | |
유니코드 문자 | L'a',L'b',L'c' | |
정수형 상수 | 10진수 정수 | 10, -10 |
16진수 정수 | 0xabcd, 0X12EE 맨앞의 0x는 16진수를 의미함 |
|
8진수 정수 | 012,0234 맨앞의 0은 8진수를 의미함 |
|
unsigned 정수 | 123u,123U U는 완전 자연수를 의미함 |
|
long형 정수 | 123456l,123456L | |
unsigned long 정수 | 12345678ul,12345678UL | |
실수형 상수 | 부동소수점 표기 실수 | 3.1425, -0.12345 |
지수 표기 실수 | 3.5e13, 4.5E-30 ※ e, 10의 n승, -e는 1/10의 n승이다. ※ n은 e,-e의 뒤의 값이다. |
|
float형 실수 | 3.14f, 3.14F |
예시
#include <stdio.h>
int main(void)
{
char ch = '\x41'; // 문자형
int i = 0x76; // int 형
unsigned int uni = 75U; // 정수형 상수 unsigned형 정서
long l = 12345678L; //long형
double d = 123.23; //double형
double md = 25e-2; // 25*(1/100)
float f = 17.5F; //실수형 상수 float형
}
매크로 상수 = 기호 상수(symbolic constant)
- #define문으로 정의되는 상수이다.
- 프로그램에서 여러 번 사용되는 상수의 값을 매크로 상수로 정의해두고 사용하면 편리하다.
- 매크로 상수는 함수 안이나 밖에서 정의할 수 있다. 하지만 대부분 밖에서 정의한다.
- 리터럴 상수가 아닌 매크로 상수로 선언을 하면 프로그램이 이해하기가 쉬워진다.
- 가독성(readability)이 향상된다.
작성법
#define 매크로명 값
예를 들어
#define MAX 100
#define MIN -MAX
매크로명은 식별자와 구분을 위해 모두 대분자를 사용함
영문자나 밑줄 기호(_)로 시작해야되며, 영문자와 숫자, 밑줄 기호(_)로 만들어야 한다.
예시
#include <stdio.h>
#define MAX 100 // 메크로 정의
int main(void)
{
int i = MAX; //int i = 100;으로 처리
int i2 = MAX - 1; //int i2 = 100 - 1;로 처리
printf("MAX = %d\n", MAX);
//MAX를 100으로 대치(replace), 출력문은 MAX문자 그대로 출력
}
#define문이란?
- C 문장(statement)가 아닌 전처리기(preprocessor)가 처리하는 문장이다.
- 전처리기는 컴파일러가 소스 파일을 컴파일하기 전에 먼저 수행하며, 프로그래머가 작성한 소스 파일을 컴파일 할 수 있도록 변환해서 준비한다.
- 대표적인 전처리기문 : #define문, #include문
- #define뒤에는 세미콜론(;)이 사용되지 않고, 사용시 문제가 발생할수도 있다.
728x90
반응형