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.
댓글