size_t와 std :: size_t의 차이점
의 차이점은 무엇입니까 size_t
하고 std::size_t
, 때를 사용하고 다른 차별화 기능해야 그들이 선언 된 곳의 측면에서는?
C size_t
와 C ++ std::size_t
는 모두 동일합니다.
C에서는 C 헤더와 내용이 C 헤더와 동일한 <stddef.h>
C ++에 정의되어 있습니다 <cstddef>
(아래 인용문 참조). sizeof 연산자 결과 의 부호없는 정수 유형 으로 정의됩니다 .
C 표준은 §17.7 / 2에서 말합니다.
size_t 는 sizeof 연산자 결과 의 부호없는 정수 유형 입니다.
그리고 C ++ Standard는 cstddef
§18.1 / 3에서 ( 헤더 에 대해 ) 말합니다 .
내용은 다음과 같이 표준 C 라이브러리 헤더 와 동일합니다 .
예, 둘 다 동일합니다. 유일한 차이점은 C ++ size_t
이 std
네임 스페이스 에서 정의한다는 것 입니다.
또한 위의 행에는 "다음 변경 사항 포함" 이라는 문구가 표시되어 size_t
있습니다. 오히려 C ++에서 동일한 헤더에 정의 된 언어 (C에는없는)에 새로 추가 된 내용을 참조합니다.
Wikipedia는 size_t의 범위와 저장 크기에 대한 정보가 매우 좋습니다.
size_t의 범위 및 저장 크기
size_t 의 실제 유형은 플랫폼에 따라 다릅니다 . 일반적인 실수는 ,이 size_t는 프로그래밍 오류가 발생할 수있는 부호 INT와 같은 가정한다 [3] [4] 예를 들어, 64 비트 아키텍쳐 (32)에서 이동하는 경우.
1999 ISO C 표준 (C99)에 따르면 size_t는 16 비트 이상의 부호없는 정수 유형입니다.
나머지 는 Wikipedia 의이 페이지 에서 읽을 수 있습니다 .
C ++ 03 "17.4.3.1.4 유형"에서 :
표준 C 라이브러리 (각주 169)의 각 유형 T에 대해 :: T 및 std :: T 유형은 구현에 예약되어 있으며 정의 된 경우 :: T는 std :: T와 동일해야합니다.
각주 169 :
이러한 유형은 clock_t, div_t, FILE, fpos_t, lconv, ldiv_t, mbstate_t, ptrdiff_t, sig_atomic_t, size_t, time_t, tm, va_list, wctrans_t, wctype_t 및 wint_t입니다.
std :: size_t 는 실제로 stddef.h 의 size_t 입니다.
cstddef 는 다음을 제공합니다.
#include <stddef.h>
namespace std
{
using ::ptrdiff_t;
using ::size_t;
}
... 효과적으로 이전 정의를 std 네임 스페이스로 가져옵니다.
참고 URL : https://stackoverflow.com/questions/5813700/difference-between-size-t-and-stdsize-t
'Programming' 카테고리의 다른 글
gem 파일에서 ~>은 무엇을 의미합니까? (0) | 2020.07.14 |
---|---|
ASP.NET MVC 응용 프로그램을 지역화하는 방법은 무엇입니까? (0) | 2020.07.14 |
Python에서 WSDL (SOAP) 웹 서비스를 사용하려면 어떻게해야합니까? (0) | 2020.07.14 |
FIND_IN_SET () 대 IN () (0) | 2020.07.14 |
명령 프롬프트에서 응용 프로그램을“관리자 권한으로 실행”하는 방법은 무엇입니까? (0) | 2020.07.14 |