이진 파일 구조로 작업하고 있습니다. 데이터를 읽는 코드 예제는 C로되어 있으며 Delphi에서 읽어야합니다. 나는 C 프로그래밍 경험이 없다고 덧붙였다.C 포인터 코드 예제를 Delphi 포인터 구문으로 변환
감안할 때 나는 다음과 같은 어려움을 겪고 비트는 이것이다
typedef struct {
uchar ID, DataSource;
ushort ChecksumOffset;
uchar Spare, NDataTypes;
ushort Offset [256];
} HeaderType;
...
typedef struct {
ushort ID;
...
ushort DistanceToBin1Middle,TransmitLength;
} FixLeaderType;
...
HeaderType *HdrPtr;
FixLeaderType *FLdrPtr;
unsigned char RcvBuff[8192];
void DecodeBBensemble(void)
{
unsigned short i, *IDptr, ID;
FLdrPtr = (FixLeaderType *)&RcvBuff [ HdrPtr->Offset[0] ];
if (FLdrPtr->NBins > 128)
FLdrPtr->NBins = 32;
...
다음 나는 [ HdrPtr->Offset[0] ];
첫 번째 오프셋 배열 항목의 값에서 반환 될 수 이해 작은에서
FLdrPtr = (FixLeaderType *)&RcvBuff [ HdrPtr->Offset[0] ];
HdrPtr에 의해 가리키는 HeaderType 구조체? 그래서 HdrPtr^.Offset[0]
에 해당합니까?
그런 다음 &RcvBuff [ HdrPtr->Offset[0] ];
은 인덱싱 된 RcvBuff 배열 항목의 값을 포함하는 메모리 주소를 반환해야하므로 @RecBuff[HdrPtr^.Offset[0]]
과 동일합니까?
그럼 나는 (FixLeaderType *)..
과 함께 길을 잃습니다. 누군가 FldrPtr에 의해 참조되는 내용을 정확히 설명해 주실 수 있습니까?
고마워요! 유형 변환 작업은 제가 누락 된 부분이었습니다. 그것은 내가 계속할 수있을만큼 충분히 지워줍니다. 건배. – HMcG