-1

重複の可能性:
C の「FOR」ループを Delphi に変換する

C++ の FOR ループを Delphi に変換しようとしていますが、その方法がわかりません...

これは C++ 関数です。

bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
    for(;*szMask;++szMask,++pData,++bMask)
        if(*szMask=='x' && *pData!=*bMask)   return 0;
    return (*szMask) == NULL;
}

関数宣言を変換しました:

function bCOmpare( pData: PBYTE; bMask: PBYTE; szMask: PCHAR):boolean;
begin
//...
end;

変換はどうですか?

ありがとう

4

1 に答える 1

7
function bCOmpare(pData: PByte; bMask: PByte; szMask: PAnsiChar): Boolean;
begin
  while szMask^<>#0 do
  begin
    if ((szMask^='x') and (pData^<>bMask^)) then
    begin
      Result := False;
      exit;
    end;
    inc(szMask);
    inc(pData);
    inc(bMask);
  end;
  Result := True;//the test in the C code is pointless
end;
于 2012-04-12T13:12:39.583 に答える