Neden otomatik bir=1; C derlemek?
Kod:
int main(void)
{
auto a=1;
return 0;
}
alır MS Visual Studio tarafından hataları dosya varsa 2012 derleyici olmadan derlenmiş .c uzantısı. Her zaman kullandığınız düşündüm .c uzantısı, derleme C sözdizimi göre değil, C olması gerekir . Dahası, bir tür olmadan otomatik bildiğim kadarıyla izin verilirsadeceC C beri bu tür başlatıcısı çıkarılabileceği anlamına gelir nerede 11.
Benim derleyici C yapışmasını olmadığını ifade ediyor mu, ya da kod aslında C-dili doğru mu?
CEVAP
auto
anlamına gelen eski bir kelime C "yerel kapsam". auto a
auto int a
ve yerel bir kapsam değişkeni bir işlev içinde bildirilen varsayılan olduğundan, bu da bu örnekte int a
aynı şey aynıdır.
Temel tipler vardı hiçbir yerde bu kelime aslında C selefi B bir artık, her şey int
, int
, int
dizisi için işaretçi.(*) Beyan ya auto
extrn
[sic]. C "her şey" varsayılan bir kural, tamsayılar bildirebilirsiniz. int
kalıtsal
auto a;
extern b;
static c;
ISO C kurtuldum, ama birçok Derleyiciler hala geriye uyumluluk için kabul. Eğer yabancı görünüyor ilgili bir kuralı iş başında olduğunu fark etmelisin
unsigned d; // actually unsigned int
hala modern kod yaygındır.
C 11 tür kesmesi için herhangi bir C programcı orijinal anlamı ile kullanarak olsaydı kaç olan kelime,, yeniden. Bu çoğunlukla güvenli çünkü "her şey int
" kuralı C vardı zaten düştü C 98; tek şey bu tatili auto T a
, kimse kullanmış zaten. (**19, onun Stroustrup bir yerde bu yorum, ama tam referansı şu an bulamıyorum.)
(*) B dize işleme ilginçti: int
dizileri kullanın ve her bir üye. birden fazla karakter paketi ... B aslında farklı bir sözdizimi ile BCPL.
Neden eclipse yeni bir proje oluşturma...
Neden değil't Veritabanı-Öneki.bö...
Neden Java bize bir isim dosya adından...
Neden Python kodu derlemek?...
Neden bu Java kodu derlemek?...