Author: demiahndemiahn
Date: Jun 24, 2008 22:14
아래 코드에서 test_t타입을 보면 unsigned char타입으로 비트필드를 정의했습니다.
그런데 Little Endian과 Big Endian을 사용하는 CPU에서 각각 다른 결과가 나타납니다.
(맨 아래 출력 부분 참조)
Little에서는 test_t타입내의 d1이 LSB로 가는데, Big에서는 MSB로 가는 것 같습니다.
1바이트내에서의 비트 순서가 왜 Endian과 관계가 있는 지를 모르겠습니다.
C표준에서 비트필드의 위치가 어떻게 정의하고 있나요?
추신: 요즘은 어떤 계정으로 뉴스그룹을 접속하나요?
"news.kreonet.re.kr"로 접속이 안되네요...ㅜ.ㅜ
////////////////////////////////////////
#include
#include
typedef struct {
unsigned char d1 : 1;
unsigned char d2 : 7;
} test_t;
int test()
{
test_t tmp;
char buf[1];
|