Soru & Cevap

C/C++ dillerinde "int main(){}" değimi, ne anlama ...

26.12.2020 - 07:48

Merhaba.

   Malumunuz C/C++ programa dillerinde kullanılan ana fonksiyon "main(){}" fonksiyonudur. Ancak benim anlamadığım bir husus var. "int main(){}" ve "main(){}" fonksiyonlarının arasındaki fark nedir? Bu sorunun cevabı olarak "döndürülen değer" veye "dönen değer" tanımları kullanılıyor, "değer döndürmek" değimi ne anlama gelmektedir, "return 0" değimi ile ilişkisi nedir? Açıklayabilirseniz mutlu olurum.

Teşekkürler.

4,810 Görüntülenme

4 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user terabyteforever
terabyteforever
02.01.2021 - 09:44

Bilindiği gibi, kod derlenirken Assembly'e çevrilip, Assembler ile montajlanır. GCC derleyicilerinde AS (veya eski adıyla GAS) gelmesinin sebebi de budur, kod derlenirken Assembly diline çevrilir. Assembly'de de, text section dediğimiz kısımda bir adet program başlangıç değişkeni olmalıdır, işletim sistemi çekirdeği de kodu nereden başlatacağını bilir bu vesile ile. 

Yani main(); fonksiyonumuz, aslında işletim sistemimize kodun nereden başlayacağını belirtir. Bu sayede de işletim sistemi, programımıza gerekli belleği tahsis eder.

Profile picture for user Abdullah34
Abdullah34
30.12.2020 - 12:15

Bir fonksiyon;

donus_turu fonksiyon_ismi(Parametreler) { //Fonksiyonun yapacağı işlem }

Dönüş Türü: Fonksiyonların bir dönüş değeri olabilir tanımlamada kullanılan dönüş değeri, değerin veri türüdür. Bazı fonksiyonlar istenen işlemleri bir değer döndürmeden gerçekleştirir.

Fonksiyon ismi: Her fonksiyonun programda kullanılmak üzere bir ismi olmak zorundadır. Fonksiyon ismi, fonksiyon tanımlarken belirtilmelidir.Okunabilir bir program için fonksiyon adı fonksiyounu işlevini de yansıtması tercih edilir.

Parametreler: Her fonksiyon parametre almak zorunda değildir. İşlevine göre farklılık gösterir. Aldığı parametre belirtilirken değişken tanımlamada olduğu gibi önce parametrenin veri tipi daha sonra da ismi bildirilir. Her parametreye kendi veri türü belirtilmedilir.

Fonksiyon Gövdesi: Burada fonksiyonun yapacağı işlemler yazılır.

kaynak:http://yapbenzet.kocaeli.edu.tr/cpp-fonksiyonlar-ve-nesneler/

Profile picture for user ahmetsarac
ahmetsarac
26.12.2020 - 09:56

int main() ve main() arasındaki fark biraz standartara diyor ANSI C yani C89 sürümünde direkt main() kullanılabilir ve compile hatası veya warning almazsınız çünkü C89'da tip belirtilmeyenler int olduğu düşünülerek hareket ediyor. C99 ve üzerinde bu durumu compiler warning bildirerek yapıyor o yüzden int main() kullanmak daha iyidir. Değer döndürmek olayı ise mesela 2 tane int değerim olduğunu düşünelim. Ben bu 2 değeri fonksiyona yollayıp bi işlem yaptırdıktan sonra oluşan değere ihtiyacım varsa bu fonksiyonun bir dönüş tipi olması gerek ki ben bu değeri kullanabileyim. bu yüzden fonksiyonu "int fonksiyon(int a, int b){}" şeklinde tanımlamam gerekir. Eğer o işlemden gelen değere ihtiyacım yoksa fonksiyondan gelen bir şeye ihtiyacım yoksa "void fonksiyon(int a, int b){}" şeklinde tanımlayabilirim. return 0 olayı ise programın başarı ile çıktığını belirtmek için stdlib.h dosyasında EXIT_SUCCESS 0 olarak tanımlanmış bu yüzden return 0 kullanılıyor.

Profile picture for user chnkyn01
chnkyn01
26.12.2020 - 08:51

metod oluşturma hakkında kısa bilgi vereyim.c# a göre veriyorum.

text1  text2  text3 (parametreler)

{

}

text1 => erişime açık olup olmayacağıı belirler (public, private gibi...)

text2 => metodun geriye döndüreceği değerin türünü belirler (int, string, bool, liste ... gibi)

text3 => metodun adıdır.

c de sanırım erişim belirteci yok (yazdığına göre)

öyleyse 

int main()  => bize int bir değer geri döndüren main adlı metod oluyor.

main() => sanırım void kullanmaya gerek yok gibi.yani bir şey geri döndürmeyen metod oluyor. void main() şeklinde c# ta kullanılır.

Metodların override edilmesi

aynı metodu alacağı parametre sayısı veya dönüş tipini değiştirerek tekrar kullanabilirsin.Override işlemi için hatırladığım kadarıyla dönüş türünü değiştirmek te kabul ediliyordu.

örneğin 

int main() => bize int döner

string main() => bize string döner.

veya

int main(int i) => 1 parametre alan int dönen main metodu

int main(int i, int j) => 2 parametre alan int dönen main metodu

 

return ifadesi : metodun dönüş türünü metodu tanımlarken belirtiyorsun zaten.return ile de bu türde birşey döndürmen gerek.

int main() içinde return "string" dersen hata alırsın.return ile int tür döndürmen gerek.