반응형
구조물 또는 유니언의 'unsigned temp:3'은 무엇을 의미합니까?
중복 가능성:
이 C++ 코드는 무엇을 의미합니까?
나는 JNA를 이용하여 자바에 C 구조물을 지도화하려 한다.나는 처음 보는 것을 우연히 만났다.
그struct
정의는 다음과 같습니다.
struct op
{
unsigned op_type:9; //---> what does this mean?
unsigned op_opt:1;
unsigned op_latefree:1;
unsigned op_latefreed:1;
unsigned op_attached:1;
unsigned op_spare:3;
U8 op_flags;
U8 op_private;
};
다음과 같은 변수가 정의되는 것을 볼 수 있습니다.unsigned op_attached:1
그게 무슨 뜻인지 잘 모르겠어요이 특정 변수에 할당되는 바이트 수에 영향을 미칩니까?
이 구성에서는 각 필드의 길이를 비트 단위로 지정합니다.
이 방법의 장점은 다음과 같은 기능을 제어할 수 있습니다.sizeof(op)
조심한다면요.구조물의 크기는 내부 필드 크기의 합계가 됩니다.
이 경우 op의 사이즈는 32비트입니다(즉,sizeof(op)
4)입니다.
사이즈는 항상 부호 없는 xxx:yy; construct의 각 그룹에 대해 8의 다음 배수까지 반올림됩니다.
즉, 다음과 같습니다.
struct A
{
unsigned a: 4; // 4 bits
unsigned b: 4; // +4 bits, same group, (4+4 is rounded to 8 bits)
unsigned char c; // +8 bits
};
// sizeof(A) = 2 (16 bits)
struct B
{
unsigned a: 4; // 4 bits
unsigned b: 1; // +1 bit, same group, (4+1 is rounded to 8 bits)
unsigned char c; // +8 bits
unsigned d: 7; // + 7 bits
};
// sizeof(B) = 3 (4+1 rounded to 8 + 8 + 7 = 23, rounded to 24)
제가 제대로 기억은 안 나지만 제가 맞힌 것 같아요.
비트 필드를 선언합니다.콜론 뒤의 숫자는 필드의 길이를 비트 단위로 나타냅니다(즉, 이 필드를 나타내는 데 사용되는 비트 수).
unsigned op_type:9;
op_type은 9비트의 정수 변수임을 의미합니다.
적분형 콜론 수식자는 int가 차지하는 비트 수를 지정합니다.
언급URL : https://stackoverflow.com/questions/2950029/what-does-unsigned-temp3-in-a-struct-or-union-mean
반응형
'programing' 카테고리의 다른 글
페이지 로드 시 vue.js 함수를 호출하는 방법 (0) | 2022.07.17 |
---|---|
vuex 저장소에서 Axios 인스턴스 속성을 사용하는 방법 (0) | 2022.07.17 |
vuex 저장소에 데이터의 json을 로드하고 구성 요소에 액세스 (0) | 2022.07.17 |
Jest + Vue - SyntaxError:예기치 않은 토큰 < (0) | 2022.07.17 |
포인터를 사용하여 단일 연결 목록에서 항목 제거 (0) | 2022.07.17 |