SORU
24 Ocak 2011, PAZARTESİ


Main() çok C programı başlatın?

Bölüm $3.6.1 1/C Standart okur

Bir program bir küresel içerecektir fonksiyon deniranaolan , belirlenmişbaşlayınprogramın.

Şimdi bu kodu göz önünde bulundurun

int square(int i) { return i*i; }
int user_main()
{ 
    for ( int i = 0 ; i < 10 ;   i )
           std::cout << square(i) << endl;
    return 0;
}
int main_ret= user_main();
int main() 
{
        return main_ret;
}

Bu örnek kodu niyetim yok, ben.e 9, . 0 ile tam sayı Kare baskı ^strong>önceolması gerekiyordu main() işlevi içine giren "başlangıç" programı.

Çıktı BURADAN bakabilirsiniz : http://www.ideone.com/Niy0R

Ben de -pedantic seçeneği ile derlenmiş, GCC 4.5.0. Hayır hata bile uyarı veriyor!

Yani sorum şu

Bu kod gerçekten Standart uyumlu mu?

Eğer standart uyumlu olursa, o zaman Standart söylediklerini geçersiz kılmaz mı? main() Bu programın başlangıç değil! user_main() main() önce idam edildi.

main_ret, use_main() ilk yürütür ama tamamen farklı bir şey olduğunu küresel değişkeni başlatmak için bunu anlıyorum; ben de öyleyokalıntı bildirimi main() olarak Standardı/1 $3.6.1 geçersizbaşlayınprogram; aslındasonundabuprogram!


DÜZENLEME:

Bu kelime nasıl tanımlıyorsunuz? diye başlar

Aşağı cümlenin tanımına kaynar< . em ^"programı Başlat". Tam olarak nasıl tanımlıyorsunuz?

CEVAP
24 Ocak 2011, PAZARTESİ


Bu cümle yanlış okuyorsunuz.

Program küresel bir işlevi ana adlı içerecektirprogramın belirlenmiş başlangıç.

Standart kelime "" standart. geri kalan amaçlar için başlangıç TANIMLAMA. Hayır kodu main çağrılmadan önce yürüten yazmıyor. Program başlangıç fonksiyonu sayılır diyor ki main.

Programınızı uyumludur. Programı "başladı ana kadar" başladı. olmadı Kurucu programınızı önce "başlar" "" standart, ama çok da önemli değil. başlangıç tanımına göre denir Bir SÜRÜ kod main önce yürütülürhiçher programda adı verilen, sadece bu örnek değil.

Tartışma amacıyla, kurucu kodunuzu 'başlangıç' programı, ve bu standart ile tam uyumlu. önce yürütülür

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • JamesAtiPhone

    JamesAtiPhon

    16 EYLÜL 2010
  • My Name Is Jeff

    My Name Is J

    26 ŞUBAT 2008