SORU
20 HAZİRAN 2011, PAZARTESİ


Main() C aşırı yüklü ?

main() C var 2 geçerli sürümü vardır:

int main()  // version 1
int main(int argc, char **argv)  // version 2

(Hatta eski gcc sağlar int **argv!! char **argv değiştirme)

Ama her iki sürümleri ile birlikte aynı anda olamaz ! (kullanma durumu gibi olabilir: komut istemi ikili çalışırken, hiçbir tartışma iletirseniz sonra 1 başka sürüm 2. Sürüm) çağrılmalıdır.

Özel bir derleyici kontrol sadece bir ikili sadece bir sürümü izin var mı ?

CEVAP
20 HAZİRAN 2011, PAZARTESİ


§3.6.1/2 (C 03) diyor

Bir uygulama, önceden tanımlanmış olmayacaktır main işlevi.Bu işlev olacaktır aşırı değil.Bir içelim int dönüş türü, ama aksi takdirde türü uygulama tanımlı. Tüm uygulamaları izin verecektir ana: aşağıdaki tanımları

   int main() { /* ... */ }
   int main(int argc, char* argv[]) { /* ... */ }

İkisini de kullanabilirsiniz. Hem standart uyumludur.

char *argv[] char **argv, eşdeğer olduğundan ayrıca, char **argv 11 *yerine herhangi bir fark yapmaz.


Ama her iki sürümleri ile birlikte aynı anda olamaz ! (kullanma durumu gibi olabilir: komut istemi ikili çalışırken, hiçbir tartışma iletirseniz sonra 1 başka sürüm 2. Sürüm) çağrılmalıdır.

Hayır. Her iki versiyonu birlikte aynı anda olamaz. Bir program main tam bir işlevi var. Hangisi, sizin seçiminize bağlıdır. Eğer komut satırı bağımsız değişkeni işlemek istiyorsanız, o zaman ikinci versiyonu tercih etmelisiniz, yoksa ilk sürümü yeterlidir. Ayrıca İkinci Sürüm kullanın, ve herhangi bir komut satırı argüman yoksa, o zaman bir sakıncası yoktur unutmayın. Herhangi bir hata neden olmaz. Sadece argc argv buna göre yorumlamak ve değerlerine göre, mantık ve program akışının yazmak için.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hotstrikegently

    hotstrikegen

    26 AĞUSTOS 2011
  • Microsoft Research

    Microsoft Re

    24 EKİM 2008
  • Tire Rack

    Tire Rack

    31 Mayıs 2007