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ÅŸ:

Nasıl belirli bir Linux 32 bit veya 64...
Nasıl iyi bir argüman JavaScript işlev...
Nasıl bir JavaScript nesne, belirli bi...
Neden bu kadar asal sayının Kare kökün...
Nasıl değişken olup olmadığını belirle...