Herhangi bir nedenle kullanmak için 'oto' C 03 anahtar kelime var mı?
Notbu soru aslında C 11 onaylandı önce
auto
kelime anlamını büyük ölçüde değişti önce 2009 yılında yayınlanmıştır. Cevaplar ilgilendirmeyen sağladısadeceDepolama sınıfı olmakauto
C 03 -- anlamı -- belirtilen ve otomatik tür kesintinin olmak ... ** 4 / C 11 anlamı yok. Eğer C kullanma hakkında tavsiye arıyorsanız 11auto
Bu soru şu soru ile alakalı değil.
Uzun zamandır değişkenler blok kapsamı dışında ilan örtülü olarak küresel çünkü C static
anahtar kelime kullanmak için bir nedeni olmadığını düşündüm. O zaman fark ettim açıklayan bir değişken olarak static
içinde blok-kapsam verecekti kalıcı süresi ve ilan dışında blok-scope (program kapsam) verecekti dosya-scope (sadece ulaşılan bu derleme birimi).
Bu ben (belki) henüz tam olarak anlayamadığım bir tek kelime ile bana kalıyor: auto
anahtar kelime. Yoktur bunun başka bir anlamı 'yerel değişken?' Örtülü olarak kullanmak isteyebilirsiniz her yerde senin için yapamaz mı öyle bir şey? Nasıl auto
bir değişken program kapsamında davranıyor? Ne dosya kapsamında static auto
değişken? Bu anahtar kelime herhangi bir amaç dışında var mıeksiksiz olarak mevcut?
CEVAP
11, auto
yeni bir anlam vardır C: otomatik olarak bir değişken türünü anlamak için izin verir.
Bu yüzden daha yararlı olur? Hadi temel bir örneği ele alalım
std::list<int> a;
// fill in a
for (auto it = a.begin(); it != a.end(); it) {
// Do stuff here
}
auto
14 ** tür bir yineleyici oluşturur.
Bu gerçekten karmaşık kod çok daha kolay okunur hale getirebilir.
Başka bir örnek:
int x, y;
auto f = [&]{ x = y; };
f();
f();
Orada, auto
türü bir değişken bir lambda ifade depolamak için gerekli çıkarılabilir.
Vikipedi coverage on the subject. iyi vardır
'değişken' anahtar kelime he...
Her zaman anahtar kelime argümanlar ku...
(Ya da ihmal) kullanmak için zaman var...
Yerli için Java anahtar kelime nedir?...
Neden verim sıradan bir IEnumerable ku...