C ve C her ikisi içinde geçerli bir kod her dilde derlenmiş, farklı davranışlara neden olabilir?
C ve C çok fark var, ve geçerli bir C kodu C kodu geçerli değil.
("Geçerli" olarak tanımlanan davranışı ile standart kod, Yani uygulama-spesifik olmayan/tanımsız/etc.)
İçinde C ve C de kod geçerli bir parça üretecek herhangi bir senaryo varfarklıher dilde standart bir derleyici ile derlenmiş bir davranış mı?
Bu mantıklı/faydalı bir karşılaştırma yapmak için (pratikte bir şeyler öğrenmek, soru bariz boşluklar bulmaya çalışıyorum), farz edelim:
- Hiçbir şey ile ilgili işleyişi
#ifdef __cplusplus
, parametreleri, vb. ile kesmek anlamına gelir) - Hiçbir uygulama tanımlı her iki dilde de aynı (örneğin sayısal sınırları, vb.)
- Her standart için makul son sürümleri (örneğin, diyelim ki, C ve 98) C90 ya da geç karşılaştırıyoruz
Eğer sürümleri olursa olsun, daha sonra farklı davranış üreten belirtiniz.
CEVAP
Burada C ve C işlev çağrıları ve bildirimleri nesne arasındaki farkı avantaj olarak C bildirilmemiş fonksiyonların çağrılması sağlar gerçeğine götüren bir örnek:
#include <stdio.h>
struct f { };
int main() {
f();
}
int f() {
return printf("hello");
}
C bu f
geçici oluşturulan ve yok olduğu için hiçbir şey yazdırılır, ama C fonksiyonları olduğu açıklandı olmadan çağrılabilir çünkü hello
yazacaktır.
Merak ediyorsan eğer isim f
kullanılan iki kez, C ve C standartları açıkça verir, ve bir nesne vardır demek struct f
belirsizliği ortadan kaldırmak istiyorsanız, yapısı, ya da vazgeç struct
Eğer istediğiniz işlevi.
Neden't a '' deyim deva...
Neden yok C# "türlerini birleştir...
Web tarayıcı içinde geçerli URL almak...
JavaScript içinde geçerli URL almak?...
performSelector onun seçici bilinmiyor...