C++ 11
C++ main metodu mantık ve sözdizim olarak C ile aynı. Ancak C++11 ile main metodu şöyle de tanımlanabilir hale geldi.
Cauto main() -> int
{...}
Main'in parametreleri
Main metodu parametreli veya parametresiz yazılabilir.
1. Parametresiz
Eğer parametresiz yazılırsa Posix bir daha parametrelere erişmek için imkan tanımıyor. Bazı platformalar bu imkanı tanısa da portable değildir.
1.1
Şöyle yaparız
int main()
{
//Code
}
1.2
Parametre almayan metodlara void verebildiğimiz için şöyle de yazılabilir.
int main(void)
Eğer int main (void) şeklinde yazarsak bu metodun hiç parametre almayacağını belirtiriz. Bu durumda compiler bizim için küçük bir değişiklik yapar.K&R'de gösterilen parametresiz kod çok eski ve kullanılmamalı.
main() {
blah blah blah;
}
2. Parametreli2.1
Şöyle yaparız.
int main(int argc, char * argv[])
{
//code
}
veya const argv şeklinde olabilir.int main(int argc, const char * argv[])
Array yerine şöyle de yazılabilir.int main(int argc, char **argv)
3. Derleyiciye Özel İmzaBazı derleyiciler kendilerine özel şu imzayı da kabul ederler.
int main (int argc, char* argv[], char *envp[]) { body }
Parametrelerargv parametresi
Açıklaması şöyle. argc sıfırdan büyük ise argv'nin diğer birinci konumdan başlayarak uygulamaya geçilen parametrelere erişiriz.
argv “char* argv[]” olarak tanımlanır, çünkü argv bir array'dir ve array'in her bir elemanı char* olarak kabul edilir. Dolayısıyla argv sadece“char* argv” olamaz!If the value of argc is greater than zero, the array members argv[0] through argv[argc-1] inclusive shall contain pointers to strings, which are given implementation-defined values by the host environment prior to program startup.
Örnek
Uygulamamızı şöyle çalıştıralım
./program hello world
Şunu alırız.argc = 3
argv[0] --> "./program\0"
argv[1] --> "hello\0"
argv[2] --> "world\0"
Return DeğeriAçıklaması şöyle.
If no return statement is provided, the compiler will provide a return 0; as the last statement in the function body.Linker
Tek bir main metodu olmalıdır. Açıklaması şöyle.
The linker requires that one and only one main() function exist when creating an executable program.
Hiç yorum yok:
Yorum Gönder