#define这个定义跟const这个定义有什么区别

mynameisking 2004-05-08 05:43:06
#define PTCL_SYST_USERINFO 0x0c 这是在VC中写法.
不知道在delphi中能否用
const PTCL_SYST_USERINFO=$0c代替它.

顺便问一下#define这个做什么用的?
...全文
53 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mynameisking 2004-05-09
  • 打赏
  • 举报
回复
“geyobing(大地精灵)” 一语惊人,终于惊醒梦中人。不过我至少读了20多遍geyobing(大地精灵)那段话才吾出道理来。还要多谢楼上众位
大地精灵 2004-05-09
  • 打赏
  • 举报
回复
const就是定义常量

而#define则不一样,它具有替换作用,也就是你预定义一部分指令,到时候只需要把它写在程序里,编译的时候就等于这一部分指令写在里面一样
lijinghe1 2004-05-08
  • 打赏
  • 举报
回复


#define定义的一定永远是常量.
//不准确,编译时被定义的东东替换,#define PTCL_SYST_USERINFO 0x0c//这句可以这样理解

const定义的不一定永远是常.
//理解正确,但是将const常量转为变量是一个非常不好的编程风格,除非必须这么做(如写某些接口程序)
--------------------------------------------
这个问题应在c++讨论吧
大地精灵 2004-05-08
  • 打赏
  • 举报
回复
宏替换在DELPHI里是不存在的,所以你需要跟VC的那些同事说清楚,
mynameisking 2004-05-08
  • 打赏
  • 举报
回复
高手呀,发表大句话嘛,因为我这个项目是跟vc混合开发,他们vc哪边就是用#define定义宏,可是我这边不知道咱跟他们那边接口
mynameisking 2004-05-08
  • 打赏
  • 举报
回复
up起来再让。。。。。。。。
mynameisking 2004-05-08
  • 打赏
  • 举报
回复
我得出了一点结论:

#define定义的一定永远是常量.

const定义的不一定永远是常.

这两个的区别就在这里,不知道我这样理解对不对?
耙子 2004-05-08
  • 打赏
  • 举报
回复
#define 是编译器用的宏指令,不算作C语言的语句。在编译的过程中就完全替换掉了。

pascal 的const和 c的const 有些类似,都是常量,但是delphi的const 通过编译开关可以修改,而不用永远是常量。
mynameisking 2004-05-08
  • 打赏
  • 举报
回复
干嘛要用#define定义变量呢,直接用var I:integer不行吗?
ME想得要湖涂了
mynameisking 2004-05-08
  • 打赏
  • 举报
回复
判断标志?

var
I:integer=159;
...

if a=I then ....也就是说I就变成159这个标志? 我好像快要糊涂了
楚人无衣 2004-05-08
  • 打赏
  • 举报
回复
就是判断是不是存在这样一个标志,若存在就执行某一操作
mynameisking 2004-05-08
  • 打赏
  • 举报
回复
什么叫预编译指令?
做什么用?
楚人无衣 2004-05-08
  • 打赏
  • 举报
回复
$DEFINE预编译指令,在工程中都可用;常量定义就用const了,其所定义只能在begin...end之间用
bankhank 2004-05-08
  • 打赏
  • 举报
回复
delphi里的const指的就是常量啊
fim 2004-05-08
  • 打赏
  • 举报
回复
常量啊,楼主说得很对,delphi里面没有#define

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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