C programlama dilinde var olan static tanımlı değişkenlere static tanımı yaptığımızda ve initialization(ilkleme, ilk değer verme) değeri verdiğimizde nesne birdefa hayata gelir ve hayata gelirken verdiğimiz değerle başlar tek fark ilgili kod bloğuna tekrar uğrandığında nesne tekrar hayata gelmez ve initialization değeri yüklenmez
örnek vermek gerekirse
#include<stdio.h> int foo() { static int count = 0; count++; return count; } int main() { printf("%d ", foo()); printf("%d ", foo()); return 0; }
Ekrana 1 ve 2 değerini yazar eğer static bildiriminde bulunmasaydık her zaman 1 görürdük
Object Pascal ‘da static bildirimi yok bunun yerine değiştirilebilir const type var.
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/compdirswriteabletypedconstants_xml.html
{$J+} or {$J-} {$WRITEABLECONST ON} or {$WRITEABLECONST OFF}
function Foo:Integer; {$J+} const a :integer = 0; {$J-} begin Inc(a); Result:=a; end; var i:integer; begin for i := 1 to 10 do writeln(Foo); Readln; end.