C의 size_t

Ammar Ali 2023년10월12일
C의 size_t

이 자습서에서는 size_t 명령을 사용하여 C에서 부호 없는 데이터 유형 변수를 정의하는 방법에 대해 설명합니다.

C의 size_t

size_t 명령은 C에서 unsigned 데이터 유형 변수를 정의합니다. unsigned 데이터 유형은 음수가 될 수 없으므로 size_t 명령은 int와 같은 데이터 유형이며 양의 정수 값의 경우 사용됩니다.

예를 들어, 무언가를 세거나 배열의 길이를 찾으려면 size_t 명령을 사용하여 배열의 개수와 길이가 0부터 시작하기 때문에 양수 값을 보유하는 변수를 정의할 수 있습니다. 음수가 될 수 없습니다.

sizeof() 함수는 숫자의 크기를 바이트 단위로 반환하고 size_t 명령을 사용하여 sizeof() 함수에서 반환된 값을 저장할 수 있습니다.

size_t 데이터 유형은 최소 16비트 메모리를 사용하여 값을 저장합니다.

strcspn()strlen() 함수와 같은 많은 함수의 반환 유형은 데이터 유형 size_t입니다. size_t 데이터 유형을 사용하려면 size_t 데이터 유형이 이 두 헤더 파일에 종속되기 때문에 stddef.hstdint.h 헤더 파일을 포함해야 합니다.

예를 들어, 배열을 정의하고 sizeof() 함수를 사용하여 배열의 크기를 찾아 size_t 데이터 유형의 변수에 저장해 보겠습니다. 아래 코드를 참조하십시오.

#include <stddef.h>
#include <stdint.h>
#include <stdio.h>

int main(void) {
  const size_t len = 100;
  int My_array[len];
  for (size_t i = 0; i < len; ++i) My_array[i] = i;
  size_t size = sizeof(My_array);
  printf("size of array = %lu\n", size);
}

출력:

size of array = 400

위의 코드에서 len 변수는 배열의 길이를 저장하는 데 사용되었으며 for 루프를 사용하여 My_array 배열을 채웠습니다. 주어진 배열의 크기를 출력하기 위해 printf() 함수를 사용했습니다.

sizeof() 함수의 출력이 size_t 유형의 부호 없는 긴 정수이기 때문에 printf() 함수 내에서 %lu 문자열을 사용했습니다.

size 변수의 값이 인쇄된 후 새 줄을 추가하기 위해 printf() 함수 내에서 \n 문자열을 사용했습니다. 그렇지 않으면 커서가 새 줄로 이동합니다.

size_t 데이터 유형을 사용하여 개체의 크기를 저장할 수 있으며, 음수일 수도 있는 다른 값을 저장하려면 int와 같은 다른 데이터 유형을 사용해야 합니다.

size_t 데이터 유형 값 간의 차이를 찾으려면 경우에 따라 정확한 결과를 찾을 수 없습니다. 첫 번째 값이 두 번째 값보다 작으면 결과는 음수여야 하지만 이 경우 차이가 두 개의 부호 없는 값 사이에서 계산되기 때문에 결과는 양수입니다.

이 경우 int 또는 float와 같은 다른 데이터 유형을 사용해야 합니다. size_t 데이터 유형 구현이 64비트인 경우 너비는 64비트입니다. 구현이 32비트이면 너비가 32비트가 되는 식입니다.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook