프로그래머 공간/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
반응형