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

  • HowcastFoodDrink

    HowcastFoodD

    21 EYLÜL 2010
  • jeffisthecoolguy

    jeffisthecoo

    17 HAZİRAN 2013
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008