dev.log2010. 5. 12. 17:56
오늘 섬군이 나한테 이렇게 물어봤다.
[섬] 엄아 엄아
[엄]  ??
[섬] 이게 웨 3바이트로 나올까.. ;ㅁ;
union RGB565
{
 struct
 {
  byte r : 5;
  byte g : 6;
  byte b : 5;
 };
 WORD rgb;
};
[엄]  음; 컴파일러의 최적화 덕분이겠지;
[섬] #pragma pack(1) 이거 해도?
[섬] 아.. 짜증나 .. 완전 삽질하고 있었네 -_-;
[엄] 음.. 유니언은 pack이 아니라 다른 걸로 할거 같은데...
[섬] 에잇! 다 다시 짜야쥐.ㅠ.ㅠ 망할
[섬] 유니온 따위 쓰지 말아야.. 겠.. -_-
[엄] 아아 니가 쓴 타입이 byte라 그래. WORD같은 걸로 바까바바
[섬] 흠.. WORD로? 따로 계산 ? 음..
[엄] 유니언은 선언된 타입의 경계를 벗어나는 멤버는 그 형에 맞춰서 재배열하게 돼 있슴
[엄] 5+5 = 10이니까.. g멤버가 1바이트 경계에 걸쳐지잖아
[엄] 그러니까 g멤버는 다음 바이트로 넘어가는 거지.
[섬] 호오 ... 그렇군
[섬] 크 ... 모든건 그 비모로글 유니언 때문이었군..ㅠㅠ
[엄] WORD로 바꾸면 별 문제 없이 잘 될듯;;

섬군이 모를 정도면 다른 사람들도 잘 모를거 같아서 포스팅.
Posted by uhm