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

  • MC JIN'S OLD YouTube CHANNEL

    MC JIN'S OLD

    2 Kasım 2008
  • Google Developers

    Google Devel

    23 AĞUSTOS 2007
  • Sparta Spartanutul

    Sparta Spart

    18 HAZİRAN 2013