Şimdi Ara

C main neden 0a döner gerekli midir(return 0;) ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
7
Cevap
1
Favori
15.310
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
1 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • daha yeni internetten C öğrenmeye başladım ve mantığını anlamadığım bazı şeyler var

    genelde main fonksiyonu 0 a dönüyor yani en sonda return 0; yazıyor bunun sebebi nedir ? return 0 yazmadan da program sorunsuz çalışıyor bende.

    bide ben returnu şöyle anladım : bir fonksiyon oluyor birkaç parametre giriyoruz ve en sonunda fonksiyon bir degere dönüyor. mesela toplam diye bir fonksiyon giriyoruz parametre olarak 2 sayı giriyoruz ve fonksiyonu iki sayının toplamına döndürüyoruz.main de programın ana fonksiyonu ve içinde birden fazla fonksiyon olabiliyor. doğru mudur

    bu arada thenewboston diye bir youtube kanalından öğreniyorum buradan öğrendiklerim yeterli olur mu ? ve daha çok ilerlemek için kitap almak istersem hangi kitabı önerirsiniz ?







  • (Program çalıştırılmaya başladığında önceden yaratılması gereken objelere ilişkin yapılması gereken işler ve fonksiyonlar çağırıldıktan sonra) main fonksiyonunu işletim sistemi çağırır ve program sonlandığında main fonksiyonunun geri dönüş değerinin hedefi de yine kendisini çağırmış olan işletim sisteminin kendisidir.

    'return 0;' satırının genel kabul görmüş manası da "Program hatasız sonlandırıldı" demek oluyor.
    Eğer program sonlandırıldıktan sonra geri dönüş değeri önemliyse duruma göre başka değerler de istenirse döndürülebilinir. Ama çoğu kez programın geri dönüş değerine bakılmaz, veya program sonlandırıldığında 'return' kullanmak yerine birçok başka yoldan daha değişik ve kapsamlı bir şekilde bilgilendirme de yapılabilinir.

    Program sonlandırıldığında, hususi olarak 'return' kullanılmadığı zaman, main fonksiyonunun çıkış değeri için ayrılmış "int" büyüklüğündeki hafıza alanında o anda hangi değer varsa onu işletim sistemine geri döndürür. Bu dönüş değeri kullanılmayacaksa da (ki senin bahsettiğin örneklerde öyle gözüküyor) dediğin gibi herhangi bir problem olmaz.
    Veya 'return 0;' yazılmasa bile derleyici main fonksiyonunun sonuna 'return 0;' satırını biz görmeden gizlice ekleyip o şekilde de programı derleyebilir. Bu dediğim gizli kod ekleme işi de zannedersem sadece main fonksiyonuna özgü olan ve standartlarda da olan birşey.

    main içersinde dediğin gibi programın başlangıç noktası diye kabul edilir ve içinde envai tür başka fonksiyonlar çağırılabileceği gibi o çağrılan fonksiyonların içinden de başka başka fonksiyonlar çağrılması fevkalade mümkün, kısacası her türlü şey olur, olabilir :)

    Programlama işi dünyanın en zor işidir. Hiçbir zaman öğrenilenler yeterli miktarda olmaz, muhakkak öğrenilecek yeni birşeyler illa ki vardır :)
    Yapay Zekanın Yanıtı

    C Programlama Dilinde return 0; İfadesinin Anlamı ve Önemi

    C programlama dilinde, return 0; ifadesi, main() fonksiyonunun sonuna yerleştirilir ve programın başarıyla tamamlandığını gösterir. Bu ifadeyi kullanmak, programın işletim sistemine bir dönüş değeri göndermesini sağlar ve bu değer, programın durumunu ve performansını belirtir.

    return 0; Ne İşe Yarar?

    return 0; ifadesi, işletim sistemine programın aşağıdaki koşulları karşıladığını bildirir:

    • Program beklenen şekilde çalıştı.
    • Program sırasında kritik bir hata oluşmadı.
    • Program, kaynakları uygun şekilde serbest bıraktı.

    return 0; Ne Demektir?

    return 0; ifadesi, C programlama dilinde aşağıdaki anlamlara gelir:

    • Başarılı Sonuç: Program, amaçlanan görevini tamamlamış ve herhangi bir sorun olmadan sonlanmıştır.
    • Dönüş Değeri: Programın main() fonksiyonundan 0 değerini döndürdüğü anlamına gelir. Bu değer, işletim sisteminin programın başarılı bir şekilde çalıştığını anlamasını sağlar.

    return 0; Neden Gereklidir?

    return 0; ifadesi, aşağıdaki nedenlerle C programlama dilinde gereklidir:

    • Programın Durumunu İşaretler: Programın başarılı bir şekilde tamamlandığını veya bir hata oluştuğunu belirtmek için kullanılır.
    • İşletim Sistemine Dönüş Değeri Sağlar: İşletim sistemi, programın durumunu main() fonksiyonunun döndürdüğü değere göre belirler.
    • Kod Standartları ve İyi Uygulamalar: C programlama dilindeki iyi uygulamalara göre, main() fonksiyonu her zaman bir dönüş değeri döndürmelidir ve bu değer genellikle 0'dır.

    Sonuç:

    return 0; ifadesi, C programlama dilinde, programın başarıyla tamamlandığını gösteren ve işletim sistemine bir dönüş değeri gönderen önemli bir ifadedir. main() fonksiyonunun sonuna yerleştirilerek, programın durumunu ve performansını belirlemede kullanılır ve kod standartlarına uygunluk sağlar.

    Yapay Zekanın Yanıtını Genişlet
  • Hynx kullanıcısına yanıt
    (Program çalıştırılmaya başladığında önceden yaratılması gereken objelere ilişkin yapılması gereken işler ve fonksiyonlar çağırıldıktan sonra) main fonksiyonunu işletim sistemi çağırır ve program sonlandığında main fonksiyonunun geri dönüş değerinin hedefi de yine kendisini çağırmış olan işletim sisteminin kendisidir.

    'return 0;' satırının genel kabul görmüş manası da "Program hatasız sonlandırıldı" demek oluyor.
    Eğer program sonlandırıldıktan sonra geri dönüş değeri önemliyse duruma göre başka değerler de istenirse döndürülebilinir. Ama çoğu kez programın geri dönüş değerine bakılmaz, veya program sonlandırıldığında 'return' kullanmak yerine birçok başka yoldan daha değişik ve kapsamlı bir şekilde bilgilendirme de yapılabilinir.

    Program sonlandırıldığında, hususi olarak 'return' kullanılmadığı zaman, main fonksiyonunun çıkış değeri için ayrılmış "int" büyüklüğündeki hafıza alanında o anda hangi değer varsa onu işletim sistemine geri döndürür. Bu dönüş değeri kullanılmayacaksa da (ki senin bahsettiğin örneklerde öyle gözüküyor) dediğin gibi herhangi bir problem olmaz.
    Veya 'return 0;' yazılmasa bile derleyici main fonksiyonunun sonuna 'return 0;' satırını biz görmeden gizlice ekleyip o şekilde de programı derleyebilir. Bu dediğim gizli kod ekleme işi de zannedersem sadece main fonksiyonuna özgü olan ve standartlarda da olan birşey.

    main içersinde dediğin gibi programın başlangıç noktası diye kabul edilir ve içinde envai tür başka fonksiyonlar çağırılabileceği gibi o çağrılan fonksiyonların içinden de başka başka fonksiyonlar çağrılması fevkalade mümkün, kısacası her türlü şey olur, olabilir :)

    Programlama işi dünyanın en zor işidir. Hiçbir zaman öğrenilenler yeterli miktarda olmaz, muhakkak öğrenilecek yeni birşeyler illa ki vardır :)



    < Bu mesaj bu kişi tarafından değiştirildi Buzz Lightyear -- 1 Şubat 2016; 23:08:40 >




  • quote:

    Orijinalden alıntı: Buzz Lightyear

    (Program çalıştırılmaya başladığında önceden yaratılması gereken objelere ilişkin yapılması gereken işler ve fonksiyonlar çağırıldıktan sonra) main fonksiyonunu işletim sistemi çağırır ve program sonlandığında main fonksiyonunun geri dönüş değerinin hedefi de yine kendisini çağırmış olan işletim sisteminin kendisidir.

    'return 0;' satırının genel kabul görmüş manası da "Program hatasız sonlandırıldı" demek oluyor.
    Eğer program sonlandırıldıktan sonra geri dönüş değeri önemliyse duruma göre başka değerler de istenirse döndürülebilinir. Ama çoğu kez programın geri dönüş değerine bakılmaz, veya program sonlandırıldığında 'return' kullanmak yerine birçok başka yoldan daha değişik ve kapsamlı bir şekilde bilgilendirme de yapılabilinir.

    Program sonlandırıldığında, hususi olarak 'return' kullanılmadığı zaman, main fonksiyonunun çıkış değeri için ayrılmış "int" büyüklüğündeki hafıza alanında o anda hangi değer varsa onu işletim sistemine geri döndürür. Bu dönüş değeri kullanılmayacaksa da (ki senin bahsettiğin örneklerde öyle gözüküyor) dediğin gibi herhangi bir problem olmaz.
    Veya 'return 0;' yazılmasa bile derleyici main fonksiyonunun sonuna 'return 0;' satırını biz görmeden gizlice ekleyip o şekilde de programı derleyebilir. Bu dediğim gizli kod ekleme işi de zannedersem sadece main fonksiyonuna özgü olan ve standartlarda da olan birşey.

    main içersinde dediğin gibi programın başlangıç noktası diye kabul edilir ve içinde envai tür başka fonksiyonlar çağırılabileceği gibi o çağrılan fonksiyonların içinden de başka başka fonksiyonlar çağrılması fevkalade mümkün, kısacası her türlü şey olur, olabilir :)

    Programlama işi dünyanın en zor işidir. Hiçbir zaman öğrenilenler yeterli miktarda olmaz, muhakkak öğrenilecek yeni birşeyler illa ki vardır :)

    Hocam sağol anladım. Bazen process returned 0 yerine başka bir sayı yazıyordu nedeni hata olmasıymış yani . Bu arada void main ve int main arasında fark var mı ?




  • Hynx kullanıcısına yanıt
    işin doğrusu "int main" şeklinde. main fonksiyonunun her ne kadar dönüş değeri kimse tarafından kullanılmasa bile bu bu şekilde öngörülmüş. Eskiden birçok derleyici tarafından "void main" de kabul görüyordu ama o iyice terkedildi diye biliyorum. int main, void main hiç mühim konular değil bu arada...

    int main()
    {
    //...

    return 0;
    }

    diye her defasında el alışkanlığıyla yazılır geçilir. Tabiyatıyle programın önemli kısımları bunun dışında kalan kodlar. Ancak tabii başlangıç olarak bunları detaylarıyla sorman da güzel birşey.
  • seyfi84 S kullanıcısına yanıt
    Sadece main fonksiyonuna özgü bir istisna olarak main fonksiyonundan 'return' kullanılarak çıkılmasa dahi derleyici uyarı vermeyebiliyor, çünkü standartlarda 'return'süz main'de makbul. Ancak bu diğer fonksiyonlar için geçerli değil elbette.
  • seyfi84 S kullanıcısına yanıt
    Anlıyorum. Benim kullandığım C++ Builder 10 Seattle derleyicisinde de proje ayarlarında "Treat warnings as errors" diye seçtiğim halde mesela 'main'de return yazmasam bile derliyor ve uyarı bile vermiyor.
    Ancak bu durumda elbette diğer fonksiyonlarda eğer return gerekiyorsa ve yazılmamışsa hata olarak bildirerek derlemiyor.
  • quote:

    Orijinalden alıntı: seyfi84

    bu kadar uzun anlatacak bir mevzu değil, cevap basit:
    C'de fonksiyonlar void olarak tanımlanmadıysa bir değer return etmesi gerekir. main de bir fonksiyon, int olarak tanımlı, o halde bir int değer return edecek.
    return yazmadın ve hata vermedi, olabilir, derleyici affedici olabiliyor kullandığın derleme argümanlarına göre. tavsiyem o ayarları değiştir, öyle affedici olmasın, daha iyi öğrenirsin. gcc için -Werror -Wall ekle, cl.exe için de benzer ayarlar var.

    nasıl ekleyebilirim. proje açarken derleyiciler arasından gnu gcc seçiyorum ekleme çıkarma sormuyor
  • Yapay Zeka’dan İlgili Konular
    c# method ve fonksiyon farkı ?
    9 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.