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

  • 3DS Max Tutorials

    3DS Max Tuto

    4 AĞUSTOS 2013
  • Louis C.K.

    Louis C.K.

    18 HAZİRAN 2006
  • martin shervington

    martin sherv

    7 EKİM 2011