在C里面,static不是常量的意思,而是静态变量。比如一个函数里面声明的静态变量, 在两次函数调用之间的值是不会改变的。举个例子:int foo() { static int x = 3; return x+=3; }int main() { int a, b; a = foo(); b = foo(); }执行完,a为6,b为9。我是想知道在Delphi中如何实现这样的功能(不用全局变量)。据我所知Const只是声明一个常量的意思,好像没有这样的功能。
KXY和FIRE是对的,用CONST不是在PASCAL的首部声明,而是在过程中声明,就象这样: procedure someproc(); const i=0 bar j,k:integer; begin ... end; 这里的 i 就是一个Static变量,而不是常量,不要被它前面的 const迷惑。object Pascal为什么这样,我也不知道,但确实如此。
在两次函数调用之间的值是不会改变的。举个例子:int foo() {
static int x = 3;
return x+=3;
}int main()
{
int a, b;
a = foo();
b = foo();
}执行完,a为6,b为9。我是想知道在Delphi中如何实现这样的功能(不用全局变量)。据我所知Const只是声明一个常量的意思,好像没有这样的功能。
procedure someproc();
const
i=0
bar
j,k:integer;
begin
...
end;
这里的 i 就是一个Static变量,而不是常量,不要被它前面的 const迷惑。object Pascal为什么这样,我也不知道,但确实如此。
是Var不是Bar, 昨天宿醉未醒
:)