VC++中的#define在DELPHI中如何用?

Think-In-C 2009-11-27 08:45:31
如果在VC++中有这么一个定义:

#DEFINE C(i) 2*i

那么我在DELPHI中如何做相应的定义和引用呢?
const?
type?
{#DEFINE}?

请帮忙附一段示例代码,谢谢。
...全文
296 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hemiya 2009-11-28
  • 打赏
  • 举报
回复
宏在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再使用的,也不是直接就用的。
Think-In-C 2009-11-28
  • 打赏
  • 举报
回复
谢谢各位。
我昨天已经详细了解了DELPHI的宏。
估计要实现这个,需要 NEW CLASS 完成。因为既然定义了宏,肯定不止定义一个,C++是这么实现的,我觉得DELPHI可以用一个新的OBJECT CLASS来完成。
不过,还没有实现,测试了一部分了。
gyk120 2009-11-28
  • 打赏
  • 举报
回复
你只能自己写了……
mdejtod 2009-11-27
  • 打赏
  • 举报
回复
delphi里面有宏定义,不过宏没有运算的功能
haitao 2009-11-27
  • 打赏
  • 举报
回复
delphi的宏只是用于条件编译,不能作为常量或函数
HeroicDragon 2009-11-27
  • 打赏
  • 举报
回复
这是一个宏定义,相当于:
function(i:integer):integer;
begin
result:=2*i;
end;

DELPHI里没有宏
wintergoes 2009-11-27
  • 打赏
  • 举报
回复
像个function啊
Seamour 2009-11-27
  • 打赏
  • 举报
回复
delphi没有那么复杂的预编译功能

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧