Q&A

  • 해석좀 부탁드립니다.
type
  ByteArray16    =   array[0..15]  of Byte;
  ByteArray496   =   array[0..495] of Byte;

var
  MultiTxBase:        array[0..31] of ^ByteArray16;
  MultiRxBase:        array[0..31] of ^ByteArray16;
  MultiTxBuff:        array[0..31] of ^ByteArray496;
  MultiRxBuff:        array[0..31] of ^ByteArray496;

// 아래 부분이 무슨 일을 하는 내용인지..
// 특히 Ptr 인수에서 $ 는 왜 붙이는지..

MultiTxBase[port] := Ptr($00D8000 + port * 1024 + 0);
MultiRxBase[port] := Ptr($00D8000 + port * 1024 + 256);
MultiTxBuff[port] := Ptr($00D8000 + port * 1024 + 16);
MultiRxBuff[port] := Ptr($00D8000 + port * 1024 + 256 + 16);

// 델파이는 처음 보는 거라 생짜입니다.
// 부탁드립니다.


1  COMMENTS
  • Profile
    이중철 2004.02.09 22:51

    var
      MultiTxBase:        array[0..31] of ^ByteArray16;

    이 뜻은 16바이트의 바이트어레이(ByteArray16)의 해당 포인터를
    32개의 어레이로 관리하겠다는 뜻입니다.
    즉, MultiTxBase[0] <- 여기에는 16바이트의 바이트어레이를 지정한곳의
    포인터(4바이트)를 가지고 있는것입니다.
    참고로 포인터는 4바이트 입니다

    마지막으로 $표시는 값을 16진수로 표현된것입니다.
    보통 어드레스를 핸들링 할때는 헥사로 표현하고 관리하는것이
    편하기 때문입니다.