Statik ve Dinamik Bağlanma Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 1 Nisan 2021
Güncelleme Tarihi: 1 Temmuz 2024
Anonim
Dinamik ve Statik Arasındaki Fark
Video: Dinamik ve Statik Arasındaki Fark

İçerik


Bir 'işlev tanımının' bir 'işlev çağrısına' veya 'bir değere' bir 'değişkene' ait bir ilişkiye 'bağlayıcı' denir. Derleme sırasında her "fonksiyon tanımı" na bir hafıza adresi verilir; İşlev çağrısı yapılır yapılmaz program yürütme kontrolü bu hafıza adresine taşınır ve o yerde saklanan işlev kodunu çalıştırır; bu, 'işlev çağrısının' işlev tanımı 'için bağlanmasıdır. Ciltleme, "statik ciltleme" ve "dinamik ciltleme" olarak sınıflandırılabilir.

Çalışma zamanından önce zaten biliniyorsa, hangi işlev çağrılacak veya bir değişkene hangi değer atanacaksa, o zaman bir “statik bağlama” dır. Çalışma zamanında biliniyorsa, buna “dinamik bağlama” denir.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. Sonuç

Karşılaştırma Tablosu:

Karşılaştırma için temelStatik BağlamaDinamik Ciltleme
Etkinlik OluşumuDerleme zamanında meydana gelen olaylar "Statik Ciltleme" dir.
Çalışma zamanında meydana gelen olaylar "Dinamik Ciltleme" dir.
BilgiBir işlevi çağırmak için gereken tüm bilgiler derleme zamanında bilinir.Çalışma sırasında tüm bilgilerin bir fonksiyonu çağırması gerekir.
avantajVerimlilik.Esneklik.
zamanHızlı işlemYavaş yürütme.
Alternatif isimErken bağlamaGeç bağlama.
ÖrnekAşırı yüklenmiş fonksiyon çağrısı, aşırı operatörler.C ++ 'da sanal fonksiyon, java'da geçersiz kılınan yöntemler.

Statik Bağlamanın Tanımları

Derleyici, bir işlevi çağırmak için gereken tüm bilgileri veya derleme sırasında değişkenlerin tüm değerlerini onayladığında, “statik bağlanma“. Gerekli tüm bilgiler çalışma zamanından önce bilindiğinden, program verimliliğini artırır ve aynı zamanda bir programın yürütme hızını artırır.


Statik Ciltleme, bir programı çok verimli kılar, ancak programda önceden tanımlanmış olan "değişken değişkeni değerleri" ve "işlev çağrısı" değerleri programın esnekliğini azaltır. Statik Ciltleme, kodlama zamanında bir programda uygulanır.

Bir işlevin veya işlevin aşırı yüklenmesi, derleme zamanı polimorfizmi, yani statik bağlama örneğidir.

C ++ 'a statik aşırı yüklenmenin aşırı yüklenme örneği ile uygulanması

#Dahil etmek namespace std kullanarak; sınıf aşırı yükü {int a, b; public: int yük (int x) {// ilk yük () işlevi. = x; cout << "x'in değeri" <fonksiyonu (); // Yukarıdaki ifade, hangi sınıf fonksiyonunun çağrılacağına karar verir. p = & d1; // İşaretçinin Vlaue değişiklikleri. p> fonksiyonu (); // Yukarıdaki ifade, hangi sınıf fonksiyonunun çağrılacağına karar verir. p = ve d2; // Yine işaretçinin değeri değişir. p> fonksiyonu (); // Yukarıdaki ifade, hangi sınıf fonksiyonunun çağrılacağına karar verir. 0 döndür; }

Burada, program yürütülürken işaretçinin değeri değişir ve işaretçinin değeri hangi sınıfın işlevinin çağrılacağına karar verir. Bu nedenle, burada çalışma zamanında bilgi sağlanır, yürütmeyi yavaşlatan verileri bağlamak zaman alır.


  1. Bir fonksiyon kodu gibi bir derleme zamanında meydana gelen olaylar, bir işlev çağrısı veya bir değişkene değer ataması ile ilişkilendirilir, statik / erken Bağlanma olarak adlandırılır. Aksine, bu görevler çalışma zamanında yerine getirildiğinde dinamik / geç bağlama adı verilir.
  2. Tüm veriler yürütmeden önce toplandığından, 'Verimlilik' statik Ciltlemede artar. Ancak dinamik Ciltleme'de, veriler çalışma zamanında elde edilir, böylece değişkene hangi değeri atayacağımıza karar verebiliriz ve çalışma zamanında hangi fonksiyonu çağıracağımıza karar veririz.
  3. “Statik bağlama”, bir programı yürütmek için gereken tüm veriler yürütmeden önce bilindiği için bir programın yürütülmesini “daha ​​hızlı” hale getirir. Bir programı yürütmek için gerekli olan 'dinamik bağlama' verileri yürütücü sırasında derleyicinin değerleri tanımlayıcılara bağlaması zaman alır; bu nedenle programın çalışmasını yavaşlatır.
  4. Statik Ciltleme, aynı zamanda erken Ciltleme olarak da adlandırılır, çünkü işlev kodu derleme süresi sırasında işlev çağrısı ile ilişkilendirilir; bu, işlev kodunun çalışma zamanı sırasında işlev çağrısı ile ilişkilendirildiği dinamik Ciltleme işleminden daha erkendir, bu nedenle geç bağlama olarak da adlandırılır.

Sonuç:

Bununla birlikte, değişken ve fonksiyon çağrısının değerleri hakkında önceden bilgi sahibi olduğumuzda statik bağlamayı uyguladığımız sonucuna varırız. Tersine, dinamik bağlamada, yürütme sırasında tüm bilgileri sağlıyoruz.