7
请注意,这只是一个思想实验。
我知道全局(静态)变量是不好的,在任何情况下,打破范围都是一个坏主意。有没有办法改变一个局部类型的常量* *它在外部声明的例程?
考虑下面的代码:
function IsItChanged: integer;
const
CanIBeChanged: integer = 0;
begin
Result:= CanIBeChanged;
end;
假设写常量已启用,我怎么可以从它在声明的功能范围之外的改变CanIBeChanged
价值?
PS不,我不打算永远使用这个代码,这只是一个出于兴趣的问题。
什么是本地可写常量的生存期?直到代码离开方法(如正常的局部变量),还是共享?在第一种情况下,您的代码具有未定义的行为。 – CodesInChaos 2012-03-11 14:08:02
@CodeInChaos这是一个真正奇怪的构造。他们真的是全球变数。等同于静态存储的C本地人。 – 2012-03-11 14:10:28
我隐约记得那样的事情,但不知道了。 – CodesInChaos 2012-03-11 14:12:08