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ı? | Netgez.com
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

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • GirlSanctuaryBlog

    GirlSanctuar

    28 Aralık 2011
  • guau . .

    guau . .

    25 Ocak 2008