Q&A

  • 공용체안의 구조체는 어떻게 코딩하나요?
C에서 사용하던 통신패킷을 델파이로 수정하려고 하는데...

<C>
typedef union _Packet
{
    UCHAR aucBuffer[44];
    struct
    {
        UCHAR ucDataH :3;   UCHAR ucHead  :4;
        UCHAR ucDataL;
        UCHAR ucTail;
    } Type2B;
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<Delphi>
TPacketRec = record
        aucBuffer: array [1..44] of Byte;
        Type2B = packed record               ------> 이게 아닌거 같은데...???
            ucDataH: array [1..3] of Byte;
            ucHead : array [1..4] of Byte;
            ucDataL: Byte;
            ucTall : Byte;
        end;
end;
var m_vPacket: TPacketRec;

확인부탁드립니다.??? 꾸벅~~~
1  COMMENTS
  • Profile
    구창민 2002.12.21 01:40
    안녕하세요~ 구창민입니다.

    저는 파스칼에서 공용체를 지원하지 않는줄 알았는데,

    뉴스그룹에서 뒤져보니, 가변레코드라고 부르더군여.

    아래 예를 많이 들어 두었던데,

    C 로 되어 있는 있는 문장이 아래와 같다면,

    union TRect {
    struct { int left, top, right, bottom; };
    struct { TPoint lefttop, rightbottom; };
    };


    델파이에서는 이렇게 쓰여있습니다.

    TRect = record
    case Integer of
       0: (Left, Top, Right, Bottom: Integer);
       1: (TopLeft, BottomRight: TPoint);
    end;

    참고하시기를~