[Çözüldü] return 0 ile exit(EXIT_SUCCESS) Arasındaki Fark

Başlatan celikel, 02 Aralık 2013 - 21:25:08

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

celikel


  • return 0 ile exit(EXIT_SUCCESS) arasında ne fark vardır?
  • Hangisi tercih edilmelidir?

doganaydin

C++ standartlarında "If the value of status is zero or EXIT_SUCCESS, an implementation-defined form of the status successful termination is returned." diye geçer. Yani bir fark yok. Ancak derleme yaptığın sistemde başarılı çıkış 0 değil 1 olabilir. Bu gibi durumlarda daha portable olan EXIT_SUCCESS tercih edilebilir.

celikel


Tuxie

C de main fonksiyonundan çıkış için yine return ifadesi kullanılıyor.Yani aslında return kullanıldığı yerde o bloktan çıkılmış oluyor eğer ki bu main bloğu ise ki kendiside bir fonksiyondur o sebeple program sonlanmış oluyor ve geriye integer bir değer döndürüyor.
Aslında bunu normal bir fonksiyonda kullansanız fonksiyonun çağırıldığı yere değer döndürmesine yarıyor.
EXIT_SUCCESS ta aslında daha açık anlaşılır olsun diye tanımlanmış bir makro diye bir tanım geçiyor internette.Yani stdlib başlık dosyasında  #define EXIT_SUCCESS 0 böyle bir tanım varmış.

doganaydin

EXIT_SUCCESS c ve c++ da 0 olarak tanımlıdır. (/usr/include/stdlib.h dosyasından görebilirsin). Ama basitlik açısından ben return 0 kullanıyorum. Mesela altta verdiğim örneklerde davranışların tamamen aynı olduğunu görebilirsin. return 0 kullanarak 1 include az kullanırsın hatta. exit() kullanmak için stdlib.h dosyasını include etmek zorundasın.

exit() ile -> https://gist.github.com/doganaydin/7790810
return 0 ile -> https://gist.github.com/doganaydin/7790833

celikel