GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

Static ile new fonksiyonlarının farkları nedir?

Başlatan VERITAS, 25 Nisan 2020, 04:09:22

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

VERITAS

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.


chinohead

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.

ücret karşılığında filterscript, gamemode yaptırmak için: chinohead@yahoo.com

Alimşah

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
PAWN Kodu: Seç
new testNewVariable = 5;
static testStaticVariable = 5;

test.pwn
PAWN Kodu: Seç
#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.
Son düzenlenme: 25 Nisan 2020, 12:12:09 Alimşah
Senior Software Engineer

VERITAS

Yorumlarınız ve değerli bilgileriniz için teşekkürler. @Alimşah @manhunt