Programlama hakkında çok bilinmediğini düşündüğünüz bir bilgi bırakın

Online compiler kullanmadım son seferde. GCC 4.9.2, C99 ile çıktı aldım. Yani yine de demek istediğin şeyi anlıyorum. Derste biz de C'de fonksiyonların main functiondan önce tanımlanarak yazılması gerektiği şeklinde öğrendik. Ancak günümüzde IDE ve compilerlar bunu görmezden gelip senin yerine function prototype oluşturabiliyor. Uyarının sebebi bu. Örtülü tanımlanmış fonksiyon diyor uyarıda.
 
@TheAny
Aslında günümüzde değil günümüz versiyonlarından önce dediğin şeyleri yapıyordu. Artı olarak senin için oluşturmuyor eğer öyle yapsaydı düzgün bir şekilde struct döndürürdüm. Toplama yaparsın ama imza vermeden program yazamazsın patlar. Eğer ki senin editörün senin için oluşturuyorsa yazdığım fonksiyonu çalıştırması gerekir. Eğer çalıştırıyorsa kabul edeceğim ki C'de a programını kullanalım bu oluyor. Ancak adım kadar eminim ki patlaması lazım.
Zaman ayırdığın için teşekkür ederim ve emeğin için eline sağlık güzel bir tartışma oldu.
 
Teknik olarak bu doğru değil. main() ile alakası yok olayın. Bir sembolü referanslamadan önce derleyicinin o sembolün bildirisini(declaration) görmüş olması gerekir. Aksi takdirde hata alırsın.

Ek olarak main() varsayılan giriş noktasıdır. Bunu değiştirip mehmet() yapabilirsin.
 
Main'i
Kod:
main()
olarak değil ana fonksiyon olarak dedim. C dilinde kullandığın ana fonksiyon manasında.
 
Main'i
Kod:
main()
olarak değil ana fonksiyon olarak dedim. C dilinde kullandığın ana fonksiyon manasında.
Yine farketmez. İstersen Main içinde foo.h include et. foo.c içinde yukarıda lol() altında lel() tanımla ve lol() içinde lel() çağır. Hata almalısın.

lol()'un bildirisini foo.h'ye ekle ama lel() direkt foo.cde tanınlı olsun bildiri olmadan.
 
Eğer çalıştırıyorsa kabul edeceğim ki C'de a programını kullanalım bu oluyor. Ancak adım kadar eminim ki patlaması lazım.
Struct'ta patlıyor.

Zaman ayırdığın için teşekkür ederim ve emeğin için eline sağlık güzel bir tartışma oldu.
Seninde. ^^

Struct'ta patlıyor.
Basic functionlar veya inline function olabilecek functionlar için function prototyping yapıyor olabilir yada doğrudan inline function olarak çalıştırıyor olabilir compiler. Sonuçta toplamada herhangi bir yapı söz konusu değil. Makro gibi daha çok.
 
Basic functionlar veya inline function olabilecek functionlar için function prototyping yapıyor olabilir yada doğrudan inline function olarak çalıştırıyor olabilir compiler.
Olay şu;
 


Dostum bahsetmeye çalıştığım buydu. Eğer fonksiyon imzasını atmazsan "[Error] 'toplama' was not declared in this scope" hatasını verir.
 
Eki Görüntüle 1535440
Eki Görüntüle 1535442
Dostum bahsetmeye çalıştığım buydu. Eğer fonksiyon imzasını atmazsan "[Error] 'toplama' was not declared in this scope" hatasını verir.
Tamam ben de bunun ne main()'e ne de Main'e özel bir şey olmadığını anlatmaya çalışıyorum. Her translation unit (derleyiciye gösterdiğin her kaynak dosyası) için referansladığın sembolün en azından bildirisinin referans noktasından önce verilmiş olması gerekir.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…