SORU
13 Aralık 2013, Cuma


Neden sürekli argc?

int main( const int argc , const char[] const argv)

Effective C #3 Öğe belirttiği gibi "mümkün olduğunda sabit Kullanımı", şunu düşünmeye başladım "neden bu değil de sürekli parametreleri const"?.

Hangi argc değeri programında değişiklik herhangi bir senaryo var mı?

CEVAP
13 Aralık 2013, Cuma


Bu durumda, tarihi bir faktördür. C bu girişler tanımlı "değil", ve uyumluluk (iyi bir kısmı) mevcut C ile kod C erken bir gol oldu . sürekli

Bazı UNIX API, getopt gibi aslında bu nedenle argv[], yapılabilir mi yani const de değiştirebilirler.

(Bir kenara: İlginçtir, ancak getopt'in prototip öneriyor olmaz değiştir argv[] Mayıs değiştirme dizeleri sivri, Linux man page gösteren getopt permutes argümanlar, ve it appears they know they're being naughty. Açık Grup at man sayfasına bu permütasyon söz etmez.)

argc argv const koyarak çok almazdım, ve old-school programlama bazı uygulamaları geçersiz kılmak gibi olur:

// print out all the arguments:
while (--argc)
    std::cout << *  argv << std::endl;

C bu tür programlar yazdım, ve yalnız olmadığımı biliyorum. Gelen örnek kopyaladımbir yere.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • gsmaestro

    gsmaestro

    17 AĞUSTOS 2006
  • JTechTalk

    JTechTalk

    11 Temmuz 2010
  • Sarah's YouTube Channel

    Sarah's YouT

    27 Temmuz 2009