2009-10-08 20 views

Odpowiedz

14

Jest to funkcja zdefiniowana przez użytkownika, które jest konieczne, aby program mógł wykonać. Po uruchomieniu programu w skompilowanym języku wykonywana jest funkcja main. Na przykład w Javie, jeśli masz funkcję podpisu public static void main(String ... args) w klasie, wtedy ta klasa może zostać wykonana, ponieważ JVM wykona zawartość tej metody.

Przykład w Javie:

public class Test { 
    public static void main(String ... args) { 
    System.out.println("Hello World"); 
    } 
} 

...

javac Test.java 

...

java Test 

Wyniki w "Hello World", który jest drukowany na konsoli.

+4

To nie jest wymagane, jeżeli powiesz łącznik użyć innej funkcji w punkcie wejścia. –

+3

@Ryan - niektórzy z nas (* kaszel * Java * kaszel *) nie cieszą się słodkim przywilejem posiadania linkera. – ChssPly76

+4

@Ryan - Niektórzy z nas (* kaszle * ja * kaszle *) nie lubią walki z łącznikiem, jeśli nie musimy;) – aperkins

0

W języku C/C++ to standard, więc jest wbudowany i zrewidowany.

Java, nie wiem, nie ma doświadczenia

C# - Jego częścią klasy więc jego zdefiniowane przez użytkownika.

Wszystkie te są zdefiniowane przez Ciebie - mówisz, co masz robić.

3

To wymaga funkcja określona użytkownika (punkt wejścia dla plików wykonywalnych) ...

3

Nie jest "wbudowany" w żadnym języku, w tym sensie, że nie ma standardu zaimplementowanego - dla Ciebie main() avialable.

Dla C/C++/Java jest to funkcja o specjalnej właściwości, mianowicie funkcja, która zostanie wywołana na początku programu po wykonaniu wszystkich ustawień statycznych. Na przykład. ścieżka wykonanie całego programu jest C:

  1. mów niektórych kod inicjujący

  2. main()

  3. Zakończ.

Jako taki ma standardową deklarację (liczba parametrów przekazywanych z linii poleceń + tablicy „strun” - jednak język wdraża że - jakie są rzeczywiste argumenty z linii poleceń)

+0

Po prostu FYI - "Main" jest prawie wbudowany w VB.NET. Tak naprawdę musisz pracować, aby go wyeksponować i wprowadzić własną implementację ... –

+0

VB ma main()? (Szczera niespodzianka - moja ostatnia ekspozycja na jakikolwiek Basic była z powrotem w czasach posiadania komputera PC Sinclair Z80 ... – DVK

0

To funkcja zdefiniowana przez użytkownika, która jest wywoływana przez bibliotekę środowiska wykonawczego języka. Na przykład biblioteka uruchomieniowa języka C pobierze argumenty wiersza polecenia, a czasem zmienne środowiskowe z systemu operacyjnego i przekaże je do funkcji main().

Środowiska wykonawcze różnych języków zwykle wykonują tę samą operację w takiej samej formie lub innej i powodują błąd, jeśli funkcja, którą próbuje wywołać, nie istnieje.

5

Nie jestem pewien, co masz na myśli przez wbudowane vs zdefiniowane przez użytkownika. Prawie żaden język nie nadaje twojej funkcji zdefiniowanej przez użytkownika jako przywilej bycia prawdziwym punktem wejścia do programu. C++, dowolny.Język NET i wszystkie Java mają ukryte (wbudowane) metody punktu wejścia, które z kolei wywołują zdefiniowaną przez użytkownika metodę główną (lub inną metodę wejścia do tego języka - w .NET można ją nazwać cokolwiek, chociaż C# a VB.NET wymusza na nim nazwę Main).

Więc tak, praktycznie każdy język ma pojęcie metody, która jest wywoływana automatycznie, a ta metoda jest metoda zdefiniowana przez użytkownika i zazwyczaj obowiązkowe. Jednak praktycznie każdy język ma również wbudowaną metodę punktu wejścia, która faktycznie tworzy strukturę i/lub zarządzanie pamięcią dla procesu przed wywołaniem zdefiniowanej przez użytkownika funkcji "entry-point".

+2

Dobra odpowiedź. Chciałbym tylko dodać, że nazwa "main" nie jest naprawdę ważna, ponieważ większość przyzwoitych linkerów pozwoli aby ręcznie określić punkt wejścia (np./ENTRY dla VS) – NewbiZ

0

Za zgłoszenie jest wbudowany. Jego definicja jest dostarczana przez użytkownika, lub w niektórych przypadkach jest dostarczana przez strukturę aplikacji, która ma inny punkt wejścia lub w przypadku większości sterowanych zdarzeniami frameworków GUI, żaden pojedynczy punkt wejścia zdefiniowany przez użytkownika.

4

żądanie z C Standard (podkreślenie moje)

5.1.2.1 wolnostojące środowisko

  1. W wolnostojącej środowisku ( którego przebieg programu C może się odbyć bez wszelkie korzyści z systemu operacyjnego), nazwę i rodzaj funkcji nazywa się uruchamianie programu to implementacja zdefiniowana. Wszelkie wyposażenie biblioteczne dostępne do wolnostojącej programu, inne niż minimalnego zestawu wymaganych przez pkt 4, są zdefiniowane w implementacji.

main(), w wolno stojącej środowisku, jest bardzo dużo funkcja zdefiniowana przez użytkownika.

0

w Javie main (String [] args) jest punktem wyjścia do zastosowań mocy konwencji (aby programistów C++ wygodne). W przypadku apletów lub serwletów inwokacja kodu przebiega inaczej. Zauważ, że słoik może zawierać dowolny lub żaden z tych punktów wejścia i że każda klasa może zawierać główny tak, że dany słoik może być wywołany na wiele różnych sposobów jako aplikacja, jeśli jest taka potrzeba.