program story

"서명 된"키워드의 실제 사용은 무엇입니까?

inputbox 2020. 12. 24. 23:41
반응형

"서명 된"키워드의 실제 사용은 무엇입니까?


부호없는 정수는 양수 (및 0) 일 뿐이며 일반 정수에 비해 두 배의 값을 가질 수 있습니다. 차이점이 있습니까?

int variable = 12;

과:

signed int variable = 12;

언제, 왜 서명 된 키워드를 사용해야합니까?


signed키워드 를 사용할 수있는 인스턴스는 하나뿐입니다 . signed char는 항상 "plain" char다른 유형이며 구현에 따라 서명되거나 서명되지 않은 유형일 수 있습니다.

C ++ 14 3.9.1 / 1은 다음과 같이 말합니다.

char객체가 음수 값을 보유 할 수 있는지 여부는 구현에서 정의 됩니다. 문자는 명시 적으로 선언 unsigned되거나 signed. 일반 char,, signed charunsigned char세 가지 구별 유형입니다 [...]

다른 컨텍스트 signed에서는 중복됩니다.


C ++ 14 이전 (및 C)에는 두 번째 인스턴스 인 비트 필드가있었습니다. 예를 들어, int x:2;(클래스의 선언에서)와 같 unsigned int x:2;거나 같은지 구현 정의 되었습니다 signed int x:2.

C ++ 11 9.6 / 3은 다음과 같이 말했습니다.

그것은 일반 (어느 쪽도 명시 적으로 서명되지도 부호가) 여부를 구현 정의이다 char, short, int, long, 또는 long long비트 필드가 서명 또는 부호.

그러나 C ++ 14 이후로 이것은 int x:2;항상 signed int. 토론 링크


의 경우 int차이가 없습니다. 와만 차이가납니다 char.

  1. char서명 여부에 관계없이 정의되지 않습니다.
  2. char,, signed char그리고 unsigned char세 가지 유형이 있습니다.

따라서 (아마도 드물게) signed필요한 경우 사용해야 합니다 signed char. 그 외에는 이유가 생각 나지 않습니다.


signed기본 정수 유형입니다. 그래서 아니, 당신이 준 예에는 차이가 없습니다. 의 경우에만 차이가 있습니다 char.

출처 : C ++ 참조


int가 관련된 두 가지 사이에는 차이가 없습니다. unsigned int를 더 쉽게 정렬하고 읽을 수 있도록 선언하는 경우 서식 지정을 위해 서명 된 단어를 포함 할 수 있지만 모든 의도와 목적을 위해 서명 된 키워드를 사용할 필요가 없습니다.

참조 URL : https://stackoverflow.com/questions/28012943/what-is-the-actual-use-of-signed-keyword

반응형