我将用C编写的通讯库移植到Delphi,后者使用 #define 和" 切换案例"其中一个功能。
我使用" const "翻译了它们。和" 案例"在德尔福。
但Delphi编译器抱怨说" [dcc32错误] Comm.Meter.pas(76): E2026期望的常量表达式"。
只要我看到,就没有任何非常数。为什么是这样?什么是正确的解决方案?
Const
COM_SOH: Byte = 1; // Start of Header
COM_STX: Byte = 2; // Start of Text
COM_ETX: Byte = 3; // End of Text
COM_ACK: Byte = 6; // Acknowledge
COM_NACK: Byte = 21; // Not acknowledge
COM_CR: Byte = 13;
COM_LF: Byte = 10;
COM_DIV: Byte = 47;
function test_case(const ch: byte): Int32;
begin
Result := 0;
case ch of
COM_DIV:
begin
Result := ch + 1;
end;
COM_ACK:
begin
Result := ch + 2;
end;
COM_NACK:
begin
Result := ch + 3;
end;
COM_STX:
begin
Result := ch + 4;
end;
end;
end;