MostWanted Posted January 20, 2014 Share Posted January 20, 2014 Aslında byref'in anlamı çok daha derin, hatta modern programlama dillerinin çıkmasının ana sebeplerinden biri bile diyebilirim.Çok üstünkörü bir biçimde anlatmaya çalışacağım ama konu kendisi kompleks olduğu için anlamayabilirsin dert etme.Bir program yazılırken değişkenler kullanılır.Bu değişkenler integer (yani sayı) gibi sadece 4 byte (ki bu da değişkendir ama genellikle şu an öyle) bi char gibi 1 byte (bu da değişken boyuta sahip) gibi küçük değerlere sahip olduğu gibi bi arrayin boyutu veya bi veri yapısının boyutu megabaytları bulabilir.Eski programlama dilleri bir fonksiyona veri gönderirken kullandığı mekanizma ilk memory bölgesinden fonksiyonun kullanacağı yere kopyalaama şeklindedir.Yani alır senin değişkeninin aynısını fonksiyonun çalışacağı memory bölgesine kopyalar, execute eder ve işin bitince stackten alır başını gider bunlar.Bir sayıyı kopyalamak (4 byte) çok hızlı bir işlemken megabytelarca veriyi kopyalamak çok kısa olmuyor aynı zamanda fazlaca ramden yer alıyor.Bunun için byref (başka dillerdeki karşılığı başkadır) kullanılır.Kısaca bunu kullandığın zaman sen veriyi değil, verinin referansını yani adresini fonksiyona yollarsın bu da 32 bit makinelerde 4 byte 64 bitlerde 8 bytedır ki ne olursa olsun diğeriyle karşılaştırılamayacak kadar hızlı olur.Tabi bunun doğurduğu başka sorunlar "const kullanımı" gibi şeyler var ama aklını daha da fazla karıştırmak istemiyorum.Kısaca büyük veri yapılarında ve arrayleri fonksiyona yollarken byref kullanmak performansı çokça artırır biçiminde yorumlayabilirsin. 1 Quote Link to comment Share on other sites More sharing options...
isimsiz2 Posted January 20, 2014 Share Posted January 20, 2014 Saol. Peki func($a=0) ne anlama geliyor, if gibi birşeymi yani $a 0'a eşit değilse çalıştırmasın, eşitse çalıştırsın anlamınamı geliyor? Quote Link to comment Share on other sites More sharing options...
MostWanted Posted January 20, 2014 Share Posted January 20, 2014 Öyle bi kullanım yok da sanırım sormak istediğin func aliveli($a=0) nedir gibi bir şey.Bu default değerdir yani sen programın herhangi bir yerinde aliveli() diye fonksiyonu çağırırsan fonksiyonun içinde $a değişkeni 0 olarak işlem görür ama aliveli(5) diye tanımlarsan bu sefer 5 olarak işlem görür. 1 Quote Link to comment Share on other sites More sharing options...
darendeli Posted January 2, 2018 Share Posted January 2, 2018 _ayirgetir-ve-_aragetir-fonksiyonlarının Kullanımı için Küçük Bir Örnek Verebilecek varmı...Anlayamadım Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.