if Ord (PDU[i]) = $02 then begin
if intCount < 4 then begin
lenPDU := Ord (PDU[i + 1]);
for j := (i + 2) to (i + 2 + lenPDU - 1) do begin
tmpCommand := tmpCommand + PDU[j];
end;
// Version
if intCount = 0 then begin
if Ord (tmpCommand[1]) = $00 then
list2.Items.Add ('Version: Ver1')
else
list2.Items.Add ('Version: Ver2');
intCount := intCount + 1;
end
// Generic trap
else if intCount = 1 then begin
list2.Items.Add ('Generic Trap: ' + IntToStr (Ord (tmpCommand[1])));
intCount := intCount + 1;
end
// Specific Trap
else if intCount = 2 then begin
list2.Items.Add ('Specific Trap: ' + IntToStr (Ord (tmpCommand[1])));
intCount := intCount + 1;
end;
end;
end
소스는 위와 같습니다. 그런데 제목에서와 같은 에러 메시지가 inc(intCount)에서 일어나길래 inc(intCount)를 intCount := intCount + 1 로 했습니다.
그래도 똑같은 메시지가 나기 때문에 제 생각에는 컴파일러가 intCount := intCount + 1이라는 문장을 읽지 않고 지나간다고 생각합니다.
왜 그럴까요?
혹시나 아시는 분의 답을 기다립니다.
> if Ord (PDU[i]) = $02 then begin
> if intCount < 4 then begin
> lenPDU := Ord (PDU[i + 1]);
>
> for j := (i + 2) to (i + 2 + lenPDU - 1) do begin
> tmpCommand := tmpCommand + PDU[j];
> end;
>
> // Version
> if intCount = 0 then begin
> if Ord (tmpCommand[1]) = $00 then
> list2.Items.Add ('Version: Ver1')
> else
> list2.Items.Add ('Version: Ver2');
> intCount := intCount + 1;
> end
>
> // Generic trap
> else if intCount = 1 then begin
> list2.Items.Add ('Generic Trap: ' + IntToStr (Ord (tmpCommand[1])));
> intCount := intCount + 1;
> end
> // Specific Trap
> else if intCount = 2 then begin
> list2.Items.Add ('Specific Trap: ' + IntToStr (Ord (tmpCommand[1])));
> intCount := intCount + 1;
> end;
> end;
> end
>
> 소스는 위와 같습니다. 그런데 제목에서와 같은 에러 메시지가 inc(intCount)에서 일어나길래 inc(intCount)를 intCount := intCount + 1 로 했습니다.
> 그래도 똑같은 메시지가 나기 때문에 제 생각에는 컴파일러가 intCount := intCount + 1이라는 문장을 읽지 않고 지나간다고 생각합니다.
> 왜 그럴까요?
> 혹시나 아시는 분의 답을 기다립니다.
>
>
변수에 값을 넣어 놓고 한번도 사용하지 않은 경우 발생합니다. 이런 경우 그 라인을
지우더라도 아주 똑같은 결과를 얻을 수 있습니다. 사용자가 지우지 않으면 델파이가
컴파일하는 과정에서 자동으로 제거(optimization이 참으로 설정