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

  • jat4011

    jat4011

    16 EKİM 2010
  • justintimberlakeVEVO

    justintimber

    2 EYLÜL 2009
  • PhoneBuff

    PhoneBuff

    10 HAZİRAN 2011