Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

07.01.2011, 22:47

Genaue Bedeutung der main-Funktion

n`abend allerseits,

ich habe mal wieder eine Frage und zwar verstehe ich einfach nicht, was genau der Sinn der main-Funktion ist, ich bin im 4ten Kapitel, sollte man das dort schon verstanden haben :D ? Also wäre lieb wenn ihr es mir noch mal so von Mensch zu Mensch erklären würdet :)

MFG flo

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

07.01.2011, 22:50

Ein Programm muss ja irgendwo starten und da C++ ja nicht einfach an einem Anfang einer Datei anfangen kann (weil das ja noch kein Code ist) gibt es die main Funktion als Einstiegspunkt. Oder wo würdest du erwarten sollte ein Programm anfangen Anweisungen auszuführen?

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

07.01.2011, 22:52

in der ersten zeile der mainfunktion wird dir quasi die macht über den rechner übergeben. da beginnt dein programm und in der regel endet es auch mit der letzten zeile(bzw. mit dem aufruf von return)
die funktion muss main heißen damit der compiler welche funktion deine startfunktion ist.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

4

07.01.2011, 23:12

Hi,

Also das mit dem Start des Programmmes war mir schon bewust, ich meint eigentlich (habe ich mich ein bisschen kurz gefasst) ob die main funktion noch etwas anderes tut, als denn Start zu kennzeichnen. Also, ob man nachher vielleicht für irgendwelche berechnungen eine andere funktion nimmt, weil die main-funktion dafür nicht gemacht ist oder so.. Ich hoffe, das ich mich jetzt besser ausgedrückt habe ;)

MFG flo

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

5

07.01.2011, 23:16

In der Regel ruft man von main andere Klassen oder Funktionen auf die dann tun was man wünscht. Es kommt immer drauf an was man braucht...

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

07.01.2011, 23:16

theoretisch kannst du in der mainfunktion das ganze programm schön hintereinander reihen. allerdings sollte man zur besseren übersicht und wiederverwendbarkeit funktionen verwenden.

edit: @MCP: bei klassen ist er noch nicht^^
aber stimmt man könnts ja erwähnen. eine klasse kann objekte wie im reellen leben darstellen.
snake hätte zum beispiel klassen für das spiel, das spiel enthält optionen, musik und ein spielfeld, das enthält wieder beutetiere und die schlange. diese objekte kommunizieren dann miteinander. das ermöglicht eine gute schnittstelle zwischen menschlichem denken(wir denken quasi nur in objekten die miteinander interagieren) und code den ein computer versteht. das ganze nennt man objektorientierte programmierung und ist in meinen augen ein segen. mehr dazu liest du später im 7. kapitel^^
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »NachoMan« (07.01.2011, 23:22)


idontknow

unregistriert

7

07.01.2011, 23:16

Main Funktion ist eine ganz normale Funktion mit 2 besonderheiten:
- einstigspunkt des programms
- parameter sind afaik festgelegt bzw können von außen übergeben werden (beim starten des programms halt)

und ja wenn man irgendwas tut packt man das in der regel nicht alles in die main sondern lagert es eben aus in klassen dun funktionen

8

07.01.2011, 23:22

Danke!

Habe sogar ich verstanden :D
dann noch nen schönen Abend!

MFG flo

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

9

07.01.2011, 23:23

Main Funktion ist eine ganz normale Funktion mit 2 besonderheiten:
- einstigspunkt des programms
- parameter sind afaik festgelegt bzw können von außen übergeben werden (beim starten des programms halt)

und ja wenn man irgendwas tut packt man das in der regel nicht alles in die main sondern lagert es eben aus in klassen dun funktionen

Eine dieser beiden Versionen:

C-/C++-Quelltext

1
int main(int argc, char *argv[])

C-/C++-Quelltext

1
int main()


Dazu kommt noch, dass die main Funktion, falls nicht vorhanden implizit 0 zurückgibt. Ein return ist nicht notwendig.

@XXLfloflo
Die main Funktion ist sonst eine ganz normale Funktion (mit den obigen Besonderheiten). Man könnte ein komplettes Spiel einfach direkt in die main Funktion klatschen, aber üblicherweise teilt man das ganze schön in Klassen und Funktionen auf. In der main mache ich (wenn es ein ernsthaftes Projekt wird) nicht viel, ausser mal die Hauptklasse erzeugen und allenfalls Exceptions handlen, aber mit der Zeit wirst du selbst merken wie du das am besten machst.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

08.01.2011, 08:50

Dazu kommt noch, dass die main Funktion, falls nicht vorhanden implizit 0 zurückgibt. Ein return ist nicht notwendig.

Dafür würden dich manche bei uns lynchen ;) Main hat schließlich einen return-Typ.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige