uint8_t는 언제 부호 없는 문자입니까?
와 C에 C++는CHAR_BIT >= 8
.
★★★★★★★★★★★★★★★★★★★★.CHAR_BIT > 8
,uint8_t
8시 정각
커야 , 더 it it it, it it it it it it itCHAR_BIT
는 시스템상의 모든 데이터 유형의 최소 비트 수입니다.
으로 「」를 할 수 있습니까?uint8_t
이외의 것으로 unsigned char
무슨 일입니까?
(C와 C++의 답이 다를 경우 둘 다 알고 싶습니다.)
존재한다면,uint8_t
은 항상 이어야 합니다.unsigned char
하다, 하다, 하다, 같같같 같필다다 같없다만하다 이 문구는 '하다'와 같은 을 할 는 없습니다.unsigned char
예를 들어, 비트는 반대 순서로 해석할 수 있습니다.은 우스운 예이지만, 은 「일상」의 에 더 의미가 있습니다.int8_t
서, snowledge.signed char
부호 일 수도 .int8_t
2년 전
하나의 은 ' 확장 을 ' 「 정수형」입니다.uint8_t
"일반" 시스템에서도 C의 에일리어스 규칙입니다.문자 할 수 를 모두 타입에 대한 를 대폭 최적화할 수 단, 문자 타입은 에일리어스 할 수 없습니다.이것에 의해, 컴파일러는, 문자 포인터와 다른 타입에의 포인터를 모두 사용하는 함수를 고도로 최적화하는 것을 막을 수 있습니다.단,restrict
이치노 ,이 있어도uint8_t
와 정확히 같은 크기와 표현력을 가지고 있다.unsigned char
는 타입의 할 수 uint8_t
★★★★★★★★★★★★★★★★★」int
을 사용하다
으로 「」를 할 수 있습니까?
uint8_t
이외의 것으로unsigned char
「」입니다.uint8_t
할 수 것은, 「」가 있는 시스템 입니다.CHAR_BIT
8입니다. 정확히 8개의 값 비트가 있고 패딩 비트가 없는 주소 지정 가능한 단위입니다.
것은, 「」입니다.CHAR_BIT
, 한 최소 단위의 .또, 「 」 、 「 」 、 「 」 、 「 」uint8_t
패딩 비트는 사용할 수 없습니다.주소 지정 가능한 최소 유닛의 폭이 정확히8비트일 경우에만 존재할 수 있습니다.의 제공CHAR_BIT
8면 되다.uint8_t
는 패딩 비트가 없는 임의의8비트 부호 없는 정수 타입의 타입 정의에 의해 정의할 수 있습니다.
C11 표준 초안(n1570.pdf)에는 다음과 같이 기재되어 있습니다.
5.2.4.2.1 정수형 1 아래 값은 #전처리지시서에 사용하기에 적합한 상수식으로 대체해야 한다. ...구현 정의 값은 같은 부호로 표시된 값과 크기(절대값) 이상이어야 합니다.
-- number of bits for smallest object that is not a bit-field (byte) CHAR_BIT 8
따라서 최소 개체는 정확히 CHAR_B를 포함해야 합니다.IT 비트가 있습니다.
6.5.3.4 연산자 및 _Alignof 연산자 크기
...
4 char, unsigned char 또는 signed char 또는 signed char를 가진 오퍼랜드(또는 그 수식 버전)에 sizeof를 적용하면 결과는 1이 됩니다.
따라서 이러한 유닛은 (일부) 주소 지정 가능한 최소 단위입니다.물론. 뻔하지.int8_t
그리고.uint8_t
또한 존재하는 한 주소 지정 가능한 최소 단위로 간주할 수 있습니다.
7.20.1.1 정확한 폭의 정수형
1 typedef name intN_t는 너비 N, 패딩 비트 없음 및 2의 보완 표현을 가진 부호 있는 정수 유형을 지정합니다.따라서 int8_t는 정확히 8비트의 폭을 갖는 부호 있는 정수형을 나타냅니다.
2 typedef name uintN_t는 너비가 N이고 패딩 비트가 없는 부호 없는 정수 유형을 지정합니다.따라서 uint24_t는 정확히 24비트의 폭을 갖는 부호 없는 정수형을 나타냅니다.
3 이러한 타입은 옵션입니다.단, 구현이 너비가 8, 16, 32 또는 64비트이고 패딩 비트가 없으며 (서명된 형식에 대해) 2의 보완 표현을 가진 정수 형식을 제공할 경우 대응하는 형식 이름을 정의해야 한다.
"이러한 유형은 선택 사항입니다"라고 강조하는 것은 저의 것입니다.이것이 도움이 되었기를 바랍니다:)
지금까지 아무도 언급하지 않은 가능성:CHAR_BIT==8
자격 미달성char
일부 ABI에 있는 서명되지 않았습니다.uint8_t
에 대한 형식일 수 있다char
unsigned char
및 그 사악한 망글링)에 영향을 한, 즉, 모두를 경우 foo(char)
★★★★★★★★★★★★★★★★★」foo(unsigned char)
내, 콜, " ", "foo
「 「」의 uint8_t
would prefer prefer prefer 를 선호하다foo(char)
그런 시스템으로요.
언급URL : https://stackoverflow.com/questions/16138237/when-is-uint8-t-%e2%89%a0-unsigned-char
'source' 카테고리의 다른 글
다른 모듈의 getter를 사용하여 Vuex 상태를 설정하는 방법 (0) | 2022.08.27 |
---|---|
Intelij에서 시리얼 버전 UID를 생성하는 방법 (0) | 2022.08.27 |
Eclipse의 기존 소스에서 프로젝트를 만든 후 찾는 방법은 무엇입니까? (0) | 2022.08.27 |
삼각파를 발생시키는 단선 함수가 있나요? (0) | 2022.08.27 |
C : typedef 구조명 {...}; VS typedef 구조{...} 이름 (0) | 2022.08.27 |