如果在VC++中有这么一个定义:#DEFINE C(i) 2*i那么我在DELPHI中如何做相应的定义和引用呢?
const?
type?
{#DEFINE}?请帮忙附一段示例代码,谢谢。

解决方案 »

  1.   

    delphi没有那么复杂的预编译功能
      

  2.   

    这是一个宏定义,相当于: 
    function(i:integer):integer;
    begin
      result:=2*i;
    end;DELPHI里没有宏
      

  3.   

    delphi的宏只是用于条件编译,不能作为常量或函数
      

  4.   

    delphi里面有宏定义,不过宏没有运算的功能
      

  5.   

    谢谢各位。
    我昨天已经详细了解了DELPHI的宏。
    估计要实现这个,需要 NEW CLASS 完成。因为既然定义了宏,肯定不止定义一个,C++是这么实现的,我觉得DELPHI可以用一个新的OBJECT CLASS来完成。
    不过,还没有实现,测试了一部分了。
      

  6.   

    宏在c++里面就是简单的“字符串替换”。#DEFINE C(i) 2*i
    // 比如写 
    int val;
    val = 3 * C(2);
    // 最后经编译器替换改为
    val = 3 * 2 * 2;// 如过写 
    int val;
    val = 3 / C(2);
    // 最后经编译器替换改为,注意运算次序
    val = 3 / 2 * 2;像这种宏函数在c++里面已经不推荐使用了,不安全。
    宏函数最后是靠c++编译器实现的,楼主没必要研究用delphi直接使用c++的宏函数,毕竟不是一个语言。
    即使是c++builder使用pas代码,也是首先通过编译器生成.hpp和.obj再使用的,也不是直接就用的。