SORU
1 Temmuz 2013, PAZARTESİ


Neden bir C işlevi, belirli bir değişkenin değerini değiştirir olmadığını belirlemek için bir derleyici oluşturmak için imkansız mı?

Bir kitapta bu satırı okudum:

Kanıtlanabilir o aslında bir derleyici inşa etmek mümkün değildir ya da bir C işlevi bir değişim değeri olup olmadığını özellikle değişken.

Paragraf inş-lik denetlerken derleyici muhafazakar neden bahsediyordu.

Neden böyle bir derleyici oluşturmak için imkansız mı?

Derleyici her zaman bir değişkeni yeniden, olmayan sabit bir fonksiyon üzerine çağrılan veya olmayan sabit bir parametre olarak kabul ediliyor olmadığını kontrol edin

CEVAP
1 Temmuz 2013, PAZARTESİ


Böyle bir derleyici var düşünün. Hadi kolaylık sağlamak için kabul fonksiyonu verilen bir değişken değiştirir 1 döndüren bir kütüphane işlevi ve işlevi yok 0 sağlar varsayalım. Bu program baskı nedir?

int variable = 0;

void f() {
    if (modifies_variable(f, variable)) {
        /* do nothing */
    } else {
        /* modify variable */
        variable = 1;
    }
}

int main(int argc, char **argv) {
    if (modifies_variable(f, variable)) {
        printf("Modifies variable\n");
    } else {
        printf("Does not modify variable\n");
    }

    return 0;
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hak5

    Hak5

    7 EYLÜL 2005
  • Microsoft Help & Training Videos

    Microsoft He

    31 Mart 2009
  • NewsyTech

    NewsyTech

    2 AĞUSTOS 2010