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

  • Ash100HD

    Ash100HD

    29 EKİM 2011
  • bethliebert

    bethliebert

    23 EKİM 2008
  • whiteboy7thst

    whiteboy7ths

    1 Temmuz 2009