자세한건 vsual c++로 구현한 c프로그래밍, 웅보출판사, 434p를 참고.
struct field
{
struct field
{
unsigned a:1; /* a는 1비트 길이*/
unsigned b:2; /*b는 2비트 길이, 멤버 a 다음에 연속으로 저장*/
unsigned c:3;
unsigned :10; /*10 비트 길이만큼 건너뛰고 다음의 멤버를 저장 */
unsigned d:4; /*d의 위치는 a,b,c 각 비트 길이, 그리고 추가로 10비트 건너뛴 위치*/
unsigned :0; /* int 형의 경계선 정렬이 이루어진다. 자세한 건 책을 참고*/
unsigned e:5; /*e는 5비트 길이*/
unsigned c:3;
unsigned :10; /*10 비트 길이만큼 건너뛰고 다음의 멤버를 저장 */
unsigned d:4; /*d의 위치는 a,b,c 각 비트 길이, 그리고 추가로 10비트 건너뛴 위치*/
unsigned :0; /* int 형의 경계선 정렬이 이루어진다. 자세한 건 책을 참고*/
unsigned e:5; /*e는 5비트 길이*/
}
- 각멤버가 기본적으로 연속적으로 저장되는 건 맞지만 오른쪽부터 저장되는가는 시스템에 따라 다를 수 있다.
-각 멤버의 비트길이는 int 형의 비트길이를 초과할 수 없고
- 각 멤버의 비트 길이 합도 그 길이를 초과 할 수 없다.
- int 형 정렬이 2byte 인지 4byte 인지는 시스템에 따라 다르다.?
- 리틀엔디언 방식과 관련있는가
- 각 멤버를 비트필드라고 하는데, 이 비트필드들은 주소로 접근할 수 없다.(&사용 불가)
- 비트필드는 배열로 사용할 수 없다.
- 각멤버가 기본적으로 연속적으로 저장되는 건 맞지만 오른쪽부터 저장되는가는 시스템에 따라 다를 수 있다.
-각 멤버의 비트길이는 int 형의 비트길이를 초과할 수 없고
- 각 멤버의 비트 길이 합도 그 길이를 초과 할 수 없다.
- int 형 정렬이 2byte 인지 4byte 인지는 시스템에 따라 다르다.?
- 리틀엔디언 방식과 관련있는가
- 각 멤버를 비트필드라고 하는데, 이 비트필드들은 주소로 접근할 수 없다.(&사용 불가)
- 비트필드는 배열로 사용할 수 없다.
'Application-level프로그래밍' 카테고리의 다른 글
(C)정적 2차원 배열 전달 (0) | 2009.07.22 |
---|---|
(C++)template 사용주의점 (naver 지식IN) (0) | 2009.07.08 |
(C) 함수포인터 캐스팅 (0) | 2009.05.31 |
(C) 열거형 (0) | 2009.05.31 |
(C)함수포인터의 typedef 사용법 (0) | 2009.05.09 |