SORU
22 HAZİRAN 2012, Cuma


Saf fonksiyon faydaları

Bugün saf işlevi hakkında okuyordum, onun kullanımı ile kafam karıştı:

Bir fonksiyon eğer girişler aynı değerleri aynı kümesi döndürürse saf olduğu söyleniyor ve gözlemlenebilir herhangi bir yan etkisi yoktur.

örneğin strlen() rand() pis ise saf bir fonksiyonudur.

__attribute__ ((pure)) int fun(int i)
{
    return i*i;
}

int main()
{
    int i=10;
    printf("%d",fun(i));//outputs 100
    return 0;
}

http://ideone.com/33XJU

Yukarıdaki programı pure beyan yokluğunda aynı şekilde davranır.

purebir işlev olarak ilan yararları eğer çıkış değişim ise orada ne var?

CEVAP
22 HAZİRAN 2012, Cuma


pure derleyici bazı optimizasyon yapmak bilmesini sağlar işlevi hakkında: kod biraz hayal gibi

for (int i = 0; i < 1000; i  )
{
    printf("%d", fun(10));
}

Saf bir fonksiyonu, derleyici fun(10) bir kez sadece bir kez, 1000 kez yerine değerlendirmek gerektiğini biliyor. Karmaşık bir işlev için, bu büyük bir galibiyet olmuş.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CommonArtisan

    CommonArtisa

    7 Temmuz 2012
  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • Shanice Caruthers

    Shanice Caru

    27 EKİM 2011