Merhabalar, herkese iyi forumlar.
Static ile new fonksiyonlarının farklarını bilen bir arkadaşım yardımcı olabilir mi acaba?
İyi forumlar dilerim. Yorumlar için şimdiden teşekkürler.
Bu bir bakıma bellek kullanımıyla alakalı bir durumdur. new değişkeni belleği dinamik olarak ayırırken static değişken statik olarak ayıracaktır. Bunun dışındaysa static değişken kullanıldıktan sonra eski değerini unutuyor. İkisi de tahminimce aynı alanı kaplıyor ama farkı static değişkenin global değişken gibi davranması. Teoride tekrar tekrar kullanılma durumlarında static değişkeni daha hızlı ama Pawn'ın bu konuda ne kadar doğru sonuç verdiğine emin değilim. Bu dediklerime bakarak artık static kullanmanıza gerek yok çünkü bu durum yıllar öncesini etkileyen bir durumdu. Artık bu kadar kötü bilgisayarlar yok ve artık çok bir etki payı da kalmadı. Soracak olursan ben sadece belirli bir alanda ve üst üste kullanacağım zaman (admin sistemi komutları gibi) static değişkenini kullanıyorum.
Pawn'da ikisi arasin'da cok onemli bir kullanim farki yok. Tek onemli fark static bir degisken sadece tanimlandigi dosya'da kullanilabilirken, new ile olusturulan global degiskenler baska dosyalar'dan cagirilabilir, manipule edilebilir.
Ornegin:
test.inc
new testNewVariable = 5;
static testStaticVariable = 5;
test.pwn
#include <test>
main()
{
testNewVariable = 10;
testStaticVariable = 10;
}
Bu kodlari derlediginiz'de undefined symbol "testStaticVariable" hatasi alacaksiniz. Cunku static degiskenler sadece tanimlandiklari dosya ve kod blogun'da kullanilabilirler. Arada ki fark tanimlanan degiskenin kullanilacagi yerleri sinirlamak.
Yorumlarınız ve değerli bilgileriniz için teşekkürler.
@Alimşah @manhunt