static int 在Delphi下怎么写呢?谢谢啦!(50分)

  • 主题发起人 主题发起人 紫色动力
  • 开始时间 开始时间

紫色动力

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟是Delphi新手,正在把C翻译成Delphi。遇到一个问题。
C中有这样一句:static unsigned int stdby_assign_id=0x40000000;
这个静态变量在Delphi中怎么声明啊,谢谢啦
 
方式一:
全局变量.适用于任何Delphi版本.任何Static变量
var
stdby_assign_id : Integer = $40000000;
方式二:
如果是Class的Static变量并且是Delphi2006以后的版本
可以用class var.
 
Const
{$J+}
stdby_assign_id:Integer = $40000000;
{$J-}
 
Const
stdby_assign_id:Integer = $40000000;
 
不能写成Const吧,要是这样写stdby_assign_id的值就不能变了。
 
C或C++的Static关键字是修饰一个变量或类函数为静态变量或静态类函数,却不是Const类型,这个关键字加在全局变量上和Delphi的全局变量一样的功能,这个关键字加在函数局部变量上也可以说是全局变量,但不同的是这个函数全局变量的作用域只在该函数内可以访问,外部是没办法访问的(Delphi没有函数局部全局变量,所以也只有使用全局变量代替了)。这个关键字在C++上加上类变量上,则是类全局变量(在Delphi中好像只有类函数(class Function)也没有类变量吧?这个就不太清楚了)。虽说是类全局变量,但也可以作为是普通全局变量使用。这个关键字加在C++的类成员函数上则声明一个类静态函数(Delphi则是class Function)。因在Delphi没有Static关键字,要将C/C++的Static变量或类函数转化为Delphi相似的变量或静态类函数在一楼wr960204已经给出了正确的答案。不过类型不是Integer有符号整数类型,而应该是LongWord(unsigned int)无符号整数类型。所以将一楼的wr960204给出代码改一下就行了。
var stdby_assign_id : LongWord := $40000000;
 
不好意思,我只有这些分了,略表心意,呵呵!谢谢各位啦!
 
后退
顶部