산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C - 데이터 유형

c의 데이터 유형은 다양한 유형의 변수 또는 함수를 선언하는 데 사용되는 광범위한 시스템을 나타냅니다. 변수의 유형에 따라 스토리지에서 차지하는 공간과 저장된 비트 패턴이 해석되는 방식이 결정됩니다.

C의 유형은 다음과 같이 분류할 수 있습니다. -

시니어 번호 유형 및 설명
1

기본 유형

이들은 산술 유형이며 (a) 정수 유형 및 (b) 부동 소수점 유형으로 더 분류됩니다.

2

열거된 유형

그들은 다시 산술 유형이며 프로그램 전체에서 특정 불연속 정수 값만 할당할 수 있는 변수를 정의하는 데 사용됩니다.

3

무효 유형

유형 지정자 void 사용 가능한 값이 없음을 나타냅니다.

4

파생 유형

여기에는 (a) 포인터 유형, (b) 배열 유형, (c) 구조 유형, (d) 통합 유형 및 (e) 함수 유형이 포함됩니다.

배열 유형과 구조 유형을 집합적으로 집계 유형이라고 합니다. 함수의 유형은 함수의 반환 값 유형을 지정합니다. 다음 섹션에서 기본 유형을 볼 것이며, 다른 유형은 다음 장에서 다룰 것입니다.

정수 유형

다음 표는 저장 크기 및 값 범위와 함께 표준 정수 유형에 대한 세부 정보를 제공합니다 -

유형 저장소 크기 값 범위
문자 1바이트 -128 ~ 127 또는 0 ~ 255
부호 없는 문자 1바이트 0 ~ 255
서명된 문자 1바이트 -128 ~ 127
int 2 또는 4바이트 -32,768 ~ 32,767 또는 -2,147,483,648 ~ 2,147,483,647
부호 없는 정수 2 또는 4바이트 0 ~ 65,535 또는 0 ~ 4,294,967,295
짧은 2바이트 -32,768 ~ 32,767
부호 없는 약식 2바이트 0 ~ 65,535
8바이트 또는 (32비트 OS의 경우 4바이트) -9223372036854775808 ~ 9223372036854775807
unsigned long 8바이트 0 ~ 18446744073709551615

특정 플랫폼에서 유형 또는 변수의 정확한 크기를 얻으려면 sizeof를 사용할 수 있습니다. 운영자. sizeof(type) 표현식 객체 또는 유형의 스토리지 크기를 바이트 단위로 산출합니다. 다음은 limits.h 헤더 파일에 정의된 다른 상수를 사용하여 머신에서 다양한 유형의 크기를 가져오는 예입니다 -

라이브 데모
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("CHAR_BIT    :   %d\n", CHAR_BIT);
    printf("CHAR_MAX    :   %d\n", CHAR_MAX);
    printf("CHAR_MIN    :   %d\n", CHAR_MIN);
    printf("INT_MAX     :   %d\n", INT_MAX);
    printf("INT_MIN     :   %d\n", INT_MIN);
    printf("LONG_MAX    :   %ld\n", (long) LONG_MAX);
    printf("LONG_MIN    :   %ld\n", (long) LONG_MIN);
    printf("SCHAR_MAX   :   %d\n", SCHAR_MAX);
    printf("SCHAR_MIN   :   %d\n", SCHAR_MIN);
    printf("SHRT_MAX    :   %d\n", SHRT_MAX);
    printf("SHRT_MIN    :   %d\n", SHRT_MIN);
    printf("UCHAR_MAX   :   %d\n", UCHAR_MAX);
    printf("UINT_MAX    :   %u\n", (unsigned int) UINT_MAX);
    printf("ULONG_MAX   :   %lu\n", (unsigned long) ULONG_MAX);
    printf("USHRT_MAX   :   %d\n", (unsigned short) USHRT_MAX);

    return 0;
}

위의 프로그램을 컴파일하고 실행하면 Linux에서 다음과 같은 결과가 생성됩니다 -

CHAR_BIT    :   8
CHAR_MAX    :   127
CHAR_MIN    :   -128
INT_MAX     :   2147483647
INT_MIN     :   -2147483648
LONG_MAX    :   9223372036854775807
LONG_MIN    :   -9223372036854775808
SCHAR_MAX   :   127
SCHAR_MIN   :   -128
SHRT_MAX    :   32767
SHRT_MIN    :   -32768
UCHAR_MAX   :   255
UINT_MAX    :   4294967295
ULONG_MAX   :   18446744073709551615
USHRT_MAX   :   65535

부동 소수점 유형

다음 표는 저장 크기와 값 범위 및 정밀도가 있는 표준 부동 소수점 유형에 대한 세부 정보를 제공합니다. −

유형 저장소 크기 값 범위 정밀도
플로트 4바이트 1.2E-38 ~ 3.4E+38 소수점 6자리
더블 8바이트 2.3E-308 ~ 1.7E+308 소수점 15자리
롱 더블 10바이트 3.4E-4932 ~ 1.1E+4932 소수점 19자리

헤더 파일 float.h는 이러한 값과 프로그램에서 실수의 이진 표현에 대한 기타 세부 정보를 사용할 수 있도록 하는 매크로를 정의합니다. 다음 예제는 float 유형과 범위 값이 차지하는 저장 공간을 인쇄합니다. -

라이브 데모
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("Storage size for float : %d \n", sizeof(float));
    printf("FLT_MAX     :   %g\n", (float) FLT_MAX);
    printf("FLT_MIN     :   %g\n", (float) FLT_MIN);
    printf("-FLT_MAX    :   %g\n", (float) -FLT_MAX);
    printf("-FLT_MIN    :   %g\n", (float) -FLT_MIN);
    printf("DBL_MAX     :   %g\n", (double) DBL_MAX);
    printf("DBL_MIN     :   %g\n", (double) DBL_MIN);
    printf("-DBL_MAX     :  %g\n", (double) -DBL_MAX);
    printf("Precision value: %d\n", FLT_DIG );

    return 0;
}

위의 프로그램을 컴파일하고 실행하면 Linux에서 다음과 같은 결과가 생성됩니다 -

Storage size for float : 4 
FLT_MAX      :   3.40282e+38
FLT_MIN      :   1.17549e-38
-FLT_MAX     :   -3.40282e+38
-FLT_MIN     :   -1.17549e-38
DBL_MAX      :   1.79769e+308
DBL_MIN      :   2.22507e-308
-DBL_MAX     :  -1.79769e+308
Precision value: 6

공허 유형

void 유형은 사용 가능한 값이 없음을 지정합니다. 세 가지 상황에서 사용됩니다 -

시니어 번호 유형 및 설명
1

함수가 무효로 반환됨

C에는 값을 반환하지 않거나 void를 반환한다고 말할 수 있는 다양한 함수가 있습니다. 반환 값이 없는 함수는 반환 형식이 void입니다. 예:void exit(int 상태);

2

함수 인수가 무효

C에는 매개변수를 허용하지 않는 다양한 함수가 있습니다. 매개변수가 없는 함수는 void를 허용할 수 있습니다. 예:int rand(void);

3

무효에 대한 포인터

void * 형식의 포인터는 개체의 주소를 나타내지만 개체의 형식은 나타내지 않습니다. 예를 들어, 메모리 할당 함수 void *malloc( size_t size ); 모든 데이터 유형으로 캐스팅할 수 있는 void에 대한 포인터를 반환합니다.


C 언어

  1. 스위치 유형
  2. C# 변수 및 (기본) 데이터 형식
  3. C++ 데이터 유형
  4. C 데이터 유형
  5. 파이썬 데이터 유형
  6. Java 데이터 유형(기본)
  7. C 변수, 데이터 유형, 상수
  8. 5가지 유형의 데이터 센터 [예제 포함]
  9. 2021년의 8가지 클라우드 컴퓨팅 유형
  10. 예제를 포함한 8가지 데이터 침해 유형