본문 바로가기
4장 프로그래밍 언어/C

C 자료형 키워드(C Data Keywords)

2021. 4. 15.
Origianl K&R Keywords C90 K&R Keywords C99 Keywords
int signed _Bool
long void _Complex
short   _Imaginary
unsigned    
char    
float
double
   

_Bool 타입(The _Bool Type)

_Bool 타입은 C99에서 불 대수(Boolean algebra)를 표현하기 위해서 추가되었다. 0을 false, 1을 true로 사용하기 때문에 1비트의 메모리로 변수를 표현할 수 있다.

복소수 허수 타입 (Complex and Imaginary Types)

복소수 타입은 float _Complex, double _Complex, long double _Complex가 있다. 예를 들어 float _Complex는 두 개의 float 값을 가지고 있어서 각자 실수부와 허수부를 나타낸다. 마찬가지로 허수 타입에는 float _Imaginary, double _Imaginary, long double _Imaginary가 있다.

complex.h 헤더파일을 사용하면 complex를 _Complex 대신, imaginary를 _Imaginary 대신 사용할 수 있고, I를 허수 i(√-1)를 대신하여 사용할 수 있다. _Complex는 C99에서 도입되었는데, 이전까지 많은 프로그램들이 struct complex를 정의하여 사용해왔기 때문에 complex를 키워드로 추가하면 프로그램 오류 발생의 위험이 있었다. 따라서 complex는 부가적으로 사용하고 _Complex를 키워드로 사용하게 되었다.

 

예제:

//* typesize.c -- prints out type sizes */
#include <stdio.h>

int main(void)
{
   /* c99 provides a %zd specifier for sizes */
   printf("Type int has a size of %zd bytes.\n", sizeof(int));
   printf("Type char has a size of %zd bytes.\n", sizeof(char));
   printf("Type long has a size of %zd bytes.\n", sizeof(long));
   printf("Type long long has a size of %zd bytes.\n",
          sizeof(long long));
   printf("Type double has a size of %zd bytes.\n",
          sizeof(double));
   printf("Type long double has a size of %zd bytes.\n",
          sizeof(long double));
   
   return 0;
}

실행결과:

 

Type char has a size of 1 bytes.
Type long has a size of 8 bytes.
Type long long has a size of 8 bytes.
Type double has a size of 8 bytes.
Type long double has a size of 16 bytes.

반응형

댓글