main
Fonksiyon genel ad üye olmayan bir fonksiyonu olarak beyan edilmelidir. Bu, bir sınıfın statik veya statik olmayan üye işlevi olamayacağı veya bir ad alanına (hatta adsız ad alanına) yerleştirilemeyeceği anlamına gelir.
Ad main
, genel ad alanındaki bir işlev dışında C ++ 'da rezerve edilmez. main
Diğer şeylerin yanı sıra, sınıflar, değişkenler, numaralandırmalar, üye işlevler ve genel ad alanında olmayan üye olmayan işlevler dahil olmak üzere adlandırılmış diğer varlıkları bildirmekte özgürsünüz .
main
Üye işlev olarak veya bir ad alanında adlandırılmış bir işlevi bildirebilirsiniz , ancak böyle bir işlev main
, programın nerede başladığını belirleyen işlev olmayacaktır .
main
Fonksiyonu olarak ilan edilemez static
veya inline
. Ayrıca aşırı yüklenemez; main
genel isim alanında isimlendirilmiş yalnızca bir işlev olabilir .
main
Aramak izin verilmez: işlevi programda kullanılamaz main
Kodunuzdaki herhangi bir yerden işlevi ne de adresini almaya izin verilir.
Dönüş türü main
olmalıdırint
. Başka hiçbir dönüş türüne izin verilmez (bu kural kalın yazılmıştır çünkü main
bir dönüş türü ile bildiren yanlış programları görmek çok yaygındır void
; bu muhtemelen main
işlevle ilgili en sık ihlal edilen kuraldır ).
main
İzin verilmesi gereken iki bildirim vardır :
int main()
int main(int, char*[])
In (1) , hiçbir parametreler vardır.
In (2) , iki parametre vardır ve bunlar geleneksel olarak adlandırılır argc
ve argv
sırasıyla. argv
programın argümanlarını temsil eden bir C dizgisi dizisine göstericidir. dizideki argc
bağımsız değişkenlerin sayısıdır argv
.
Genellikle argv[0]
programın adını içerir, ancak bu her zaman böyle değildir. argv[argc]
boş gösterici olduğu garantilidir.
Bir dizi türü bağımsız değişkeni (gibi char*[]
) gerçekten gizlenmiş bir işaretçi türü bağımsız değişkeni olduğundan, aşağıdaki ikisinin her ikisi de yazmak için geçerli yöntemler (2) olduğunu ve her ikisinin de tamamen aynı anlama geldiğini unutmayın:
int main(int argc, char* argv[])
int main(int argc, char** argv)
Bazı uygulamalar başka tür ve sayıda parametreye izin verebilir; Neyi desteklediğini görmek için uygulamanızın belgelerini kontrol etmeniz gerekir.
main()
başarıyı göstermek için sıfır ve başarısızlığı belirtmek için sıfırdan farklı bir değer döndürmesi beklenir. Açıkça bir return
ifade yazmanız gerekmez: açık bir ifade olmadan geri dönmeye main()
izin verirseniz , yazmışsınız gibi aynıdır . Aşağıdaki iki işlev aynı davranışa sahiptir:main()
return
return 0;
main()
int main() { }
int main() { return 0; }
İki makro vardır EXIT_SUCCESS
ve EXIT_FAILURE
tanımlanan, <cstdlib>
o da döndü edilebilir main()
sırasıyla başarı ve başarısızlığını gösterir.
Döndürülen değer , programı sonlandıran işleve main()
iletilir exit()
.
Tüm bunların yalnızca barındırılan bir ortam için derleme yaparken geçerli olduğunu unutmayın (gayri resmi olarak, tam standart bir kitaplığa sahip olduğunuz ve programınızı çalıştıran bir işletim sistemi bulunan bir ortam). Bağımsız bir ortam (örneğin, bazı gömülü sistemler) için bir C ++ programı derlemek de mümkündür, bu durumda başlatma ve sonlandırma tamamen uygulama tanımlıdır ve bir main()
işlev bile gerekli olmayabilir. Modern bir masaüstü işletim sistemi için C ++ yazıyorsanız, barındırılan bir ortam için derliyorsunuz demektir.
main
döndürmeli ile çok yakından ilgilidir veya bir kopyasıdır .