컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post C언어] 한글 글자 수 구하기 함수, 2바이트 문자열 길이, 사이즈; mbslenC언어] 문자열 길이 구하기 함수, 바이트 단위 글자 개수 얻기; String Size B...C언어] char 배열, 문자열 버퍼 내용 지우기, 초기화; Clear char Array...매스매티카 학생판, 전문가용 버전 차이점, 가격 기능 차이; Mathematica Stud...PHP 예제] switch문, case문, break문, default문: 스위치-문PHP 예제] 문자열을 배열로 변환 저장 함수; String to Array기름몰, 효리몰, 감기몰, 설탕몰 등 쇼핑몰 애칭 의미; GS-G-H-CJ-KTPHP 예제] 배열을 문자열로 변환/연결/병합, 배열 합치기; Join Array배치 파일에서, 숫자 계산하기, set 명령으로 더하기 빼기; Batch File Calc...배치파일 무한루프 구현, 루프 탈출, 빠져 나오기 예제; Batch File Infinit...

C언어] size_t 형의 의미; unsigned int와 차이점, 차이

Friday, June 01, 2007

size_t 는 unsigned int 이며, 문자열이나 메모리의 사이즈를 나타낼 때 사용합니다. "unsigned int"를

typedef unsigned int size_t;

이렇게 size_t 라는 이름으로 정의해 놓은 것입니다.

size_t 는, 32비트 운영체제에서는 "부호없는 32비트 정수"이고, 64비트 운영체제에서는 "부호없는 64비트 정수"입니다.

그러나 "unsigned int" 또는 "int"는, 64비트 OS라고 해서 꼭 64비트 정수는 아닙니다. 여전히 32비트일 수도 있습니다. 이것이 size_t형과 "unsigned int"형의 차이입니다.

메모리나 문자열 등의 길이를 구할 때에는 "unsigned int" 대신 size_t 라는 형으로 길이가 반환됩니다.

size_t 를 unsigned int 로 변환 예제


소스 파일명: example.cpp
#include <stdio.h>
#include <string.h>

int main(void) {

  // size_t 자료형 자체의 크기 알아보기
  printf("%u\n", sizeof(size_t));
  // 출력 결과: 4
  // (32비트 환경에서는 size_t형이 4바이트 즉 32비트,
  // 64비트 환경이라면 8이 출력될 것임)



  // 문자열 길이 구하기
  size_t size = strlen("AAA BBB");
  // 다음과 같이 (unsigned int) 로 캐스팅하면
  // size_t가 unsigned int로 변환됨
  // unsigned int size = (unsigned int) strlen("AAA BBB");

  printf("%u\n", size);
  // 출력 결과: 7

  return 0;
}


size_t 가 아닌 그냥 unsigned int 형에 캐스팅 없이, 문자열 길이를 대입하면

warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data

이런 경고가 나오게 됩니다.


3 Comments:
At 5:48 PM, Blogger 서호빠 said...

존 내용입니다.

좀 퍼가도 될런지요?

http://cafe.naver.com/iphonediy

감사~

 
At 5:31 PM, Blogger sayheart said...

MSDN을 보시면. 이렇게 나와있습니다. 참고해보세요.

size_t 데이터형은
_fsize_t (unsigned long integer)
Used to represent the size of a file.
IO.H,
WCHAR.H
https://msdn.microsoft.com/en-us/library/323b6b3k.aspx

 
At 5:32 PM, Blogger sayheart said...

MSDN을 보시면. 이렇게 나와있습니다. 참고해보세요.

size_t (unsigned __int64 or unsigned integer, depending on the target platform)
Result of sizeof operator.
CRTDEFS.H and other include files
https://msdn.microsoft.com/en-us/library/323b6b3k.aspx

 

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top