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.h
및 stdint.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비트가 되는 식입니다.