반응형
C/C99/C++/C+++x/GNU C/GNU C99의 열거형 서명
이것은enumsigned 또는 unsigned를 입력하시겠습니까?열거형의 서명이 C/C99/ANSI C/C++/C++/GNU C/GNU C99 간에 다릅니까?
감사해요.
열거형은 정수로 표시되지만 실제 유형(및 서명)은 구현에 따라 다릅니다.
열거자 중 하나에 음수 값을 지정하여 서명된 형식으로 열거를 표시하도록 할 수 있습니다.
enum SignedEnum { a = -1 };
C++0x에서는 다음과 같이 열거형의 기본 유형을 명시적으로 지정할 수 있습니다.
enum ShortEnum : short { a };
(C++0x는 범위가 지정된 열거에 대한 지원도 추가합니다.)
완전성을 위해 C 프로그래밍 언어, 제2판에서는 열거자가 유형을 갖는 것으로 지정되어 있음을 추가하겠습니다.int(215페이지)K&R은 C 표준이 아니기 때문에 ISO C 컴파일러의 표준은 아니지만 ISO C 표준보다 이전이기 때문에 적어도 역사적 관점에서 보면 흥미롭습니다.
이건 오래된 질문입니다...하지만 저는 이것을 막 알게 되었습니다.
typedef unsigned ENUMNAME; // this makes it unsigned in MSVC C 2015
typedef enum {v0, v1, v2, v3} ENUMNAME;
다음과 같은 2비트 부호 없는 인덱스로 사용할 수 있습니다.
typedef struct {
ENUMNAME i:2;
} STRUCTNAME;
GCC ARM에서 시도했지만 작동하지 않습니다.
또한 WinDbg는 STORNAME.i를 v0-v3가 아닌 숫자로 표시합니다.
언급URL : https://stackoverflow.com/questions/2579230/signedness-of-enum-in-c-c99-c-cx-gnu-c-gnu-c99
반응형
'programing' 카테고리의 다른 글
| 월별 SQL 결과 그룹 (0) | 2023.07.23 |
|---|---|
| C 변수 선언의 괄호는 무엇을 의미합니까? (0) | 2023.07.23 |
| PHP를 사용하여 파일 강제 다운로드 (0) | 2023.07.23 |
| @NotNull 주석이 Spring 부팅 응용 프로그램에서 작동하지 않습니다. (0) | 2023.07.18 |
| 클래스의 상수에 액세스 (0) | 2023.07.18 |