CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): valken (:이쁜왕자:)
날 짜 (Date): 2006년 8월 24일 목요일 오후 05시 58분 46초
제 목(Title): Endian Problem..


typedef union
{
    unsigned long   l[2];
    unsigned long long ll;
}T_64;

이렇게 선언하고..

T_64 a;
unsigned long long b;

a.l[0] = 1;
a.l[1] = 0;
b = a.ll;       // b 에 1 이 들어가길 원하는 거겠죠?

이런식으로 쓰고 있었습니다..
Endian 고려가 전혀 안된채,, 
64 비트 서포트를 위해서 억지로 만든 구조이죠.

대충 문제 없이 잘 쓰고 있었는데,,
엔디안이 다른 시스템으로 옮겨졌습니다..

당연히 문제가 발생하겠지요..
[0] 과 [1] 을 찾아서 서로 바꾸어주는 짓은 불가능해 보이네요.

코드는 바꾸지 않고,, union 선언만 절묘하게 바꿔서 해결이 가능할까요??

아. 삽질 삽질.

   "웬 초콜릿? 제가 원했던 건 뻥튀기 쬐끔과 의류예요." "얘야, 왜 또 불평?"
                          -> 자음 19개와 모음 21개를 모두 사용하는 pangram
- 이쁜왕자 -
- Valken the SEXy THief~~ ^_* -

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.