포인터 질문드립니다.
글쓴이: kdj0724 / 작성시간: 금, 2012/08/31 - 5:35오후
10년 정도 cobol만 하다가 c언어로 변경한 늦깍기입니다.
요즘 요넘의 포인터 때문에 골치가 아프네요..
다름이 아니고 소스 분석하는데 도저히 알수가 없는 부분이 나와 이렇게 문의 드리게 되었습니다.
#define BIG_ENDIAN 2
#define LITTLE_ENDIAN 1
static int endian;
void
detect_endian(void) {
int end;
long i = 0x44332211;
unsigned char* a = (unsigned char*) &i;
end = (*a != 0x11);
// printf("The endianess is %s!\n", ((end==1)?"big":"little"));
if (end == 1) {
endian = BIG_ENDIAN;
} else {
endian = LITTLE_ENDIAN;
}
}
위 end 변수는 값이 항상 일정하지 않나요?
왜 이걸 사용하는지 잘 모르겠내요.
설명 부탁드립니다.
Forums:
사실 위 소스 내용은 xlreader 라는 라이브러리 내용중 발취한 내용입니다.
c 언어로 엑셀 파일을 읽어와 작업을 하고 싶어서 찾아 낸 것이 xlreader 요넘인데요.
사용법을 몰라 소스 분석하고 있는데 처음부터 막히내요.
혹시 엑셀 파일 리딩 할수 있는 라이브러리 괜찮은거 알고 계시면 가르쳐주세요..
Big endian, Little endian 환경에 따라 다르게 저장됩니다.
Big endian 환경에서는 순서대로 0x44332211로 저장되지만, Little endian 환경에서는 반대로
0x11223344로 저장됩니다.
자세한 것은 Byte ordering 검색해 보시면 아실듯합니다.
댓글 달기