请问Delphi中有类似与C中的宏定义吗?谢谢!

解决方案 »

  1.   

    没有,但是可以有这样的语句class function TObject.ClassName: ShortString;
    {$IFDEF PUREPASCAL}
    begin
      Result := PShortString(PPointer(Integer(Self) + vmtClassName)^)^;
    end;
    {$ELSE}
    asm
            { ->    EAX VMT                         }
            {       EDX Pointer to result string    }
            PUSH    ESI
            PUSH    EDI
            MOV     EDI,EDX
            MOV     ESI,[EAX].vmtClassName
            XOR     ECX,ECX
            MOV     CL,[ESI]
            INC     ECX
            REP     MOVSB
            POP     EDI
            POP     ESI
    end;
    {$ENDIF}有点象预处理语句,不知对你是否有用
      

  2.   

    如果你指的是象函数式的宏定义是没有的
    如果要定义一个常量,可用const关键字