<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://dev.kaibel.net/index.php?action=history&amp;feed=atom&amp;title=Main_Funktion</id>
	<title>Main Funktion - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="http://dev.kaibel.net/index.php?action=history&amp;feed=atom&amp;title=Main_Funktion"/>
	<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Main_Funktion&amp;action=history"/>
	<updated>2026-06-30T15:19:28Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in dev.kaibel.net</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://dev.kaibel.net/index.php?title=Main_Funktion&amp;diff=40&amp;oldid=prev</id>
		<title>PhilKa: Die Seite wurde neu angelegt: „= int main(int argc, char* argv[]) =  Die Funktionsdeklaration &#039;&#039;&#039;int main(int argc, char* argv[])&#039;&#039;&#039; ist die Standardform der &#039;&#039;main&#039;&#039;-Funktion in der Programmiersprache C, wenn ein Programm Kommandozeilenargumente verarbeiten soll. Sie dient als Einstiegspunkt des Programms und ermöglicht es, Eingaben direkt beim Programmstart entgegenzunehmen.  == Aufbau == Die Deklaration besteht aus drei wesentlichen Bestandteilen:  === int main === Die Funktion &#039;&#039;&#039;…“</title>
		<link rel="alternate" type="text/html" href="http://dev.kaibel.net/index.php?title=Main_Funktion&amp;diff=40&amp;oldid=prev"/>
		<updated>2025-10-17T13:59:19Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= int main(int argc, char* argv[]) =  Die Funktionsdeklaration &amp;#039;&amp;#039;&amp;#039;int main(int argc, char* argv[])&amp;#039;&amp;#039;&amp;#039; ist die Standardform der &amp;#039;&amp;#039;main&amp;#039;&amp;#039;-Funktion in der Programmiersprache C, wenn ein Programm Kommandozeilenargumente verarbeiten soll. Sie dient als Einstiegspunkt des Programms und ermöglicht es, Eingaben direkt beim Programmstart entgegenzunehmen.  == Aufbau == Die Deklaration besteht aus drei wesentlichen Bestandteilen:  === int main === Die Funktion &amp;#039;&amp;#039;&amp;#039;…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= int main(int argc, char* argv[]) =&lt;br /&gt;
&lt;br /&gt;
Die Funktionsdeklaration &amp;#039;&amp;#039;&amp;#039;int main(int argc, char* argv[])&amp;#039;&amp;#039;&amp;#039; ist die Standardform der &amp;#039;&amp;#039;main&amp;#039;&amp;#039;-Funktion in der Programmiersprache C, wenn ein Programm Kommandozeilenargumente verarbeiten soll. Sie dient als Einstiegspunkt des Programms und ermöglicht es, Eingaben direkt beim Programmstart entgegenzunehmen.&lt;br /&gt;
&lt;br /&gt;
== Aufbau ==&lt;br /&gt;
Die Deklaration besteht aus drei wesentlichen Bestandteilen:&lt;br /&gt;
&lt;br /&gt;
=== int main ===&lt;br /&gt;
Die Funktion &amp;#039;&amp;#039;&amp;#039;main&amp;#039;&amp;#039;&amp;#039; ist der Startpunkt jedes C-Programms.  &lt;br /&gt;
Der Rückgabewert vom Typ &amp;#039;&amp;#039;&amp;#039;int&amp;#039;&amp;#039;&amp;#039; signalisiert dem Betriebssystem, ob das Programm erfolgreich beendet wurde:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;return 0;&amp;#039;&amp;#039;&amp;#039; → erfolgreiche Ausführung  &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;return != 0;&amp;#039;&amp;#039;&amp;#039; → Fehlercode oder besondere Rückmeldung&lt;br /&gt;
&lt;br /&gt;
=== int argc ===&lt;br /&gt;
Der Parameter &amp;#039;&amp;#039;&amp;#039;argc&amp;#039;&amp;#039;&amp;#039; steht für &amp;#039;&amp;#039;Argument Count&amp;#039;&amp;#039; und enthält die Anzahl der beim Programmstart übergebenen Argumente.  &lt;br /&gt;
Dabei wird der Programmname selbst als erstes Argument mitgezählt.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./programm test 123&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dann gilt:&lt;br /&gt;
* argc = 3&lt;br /&gt;
&lt;br /&gt;
=== char* argv[] ===&lt;br /&gt;
Der Parameter &amp;#039;&amp;#039;&amp;#039;argv&amp;#039;&amp;#039;&amp;#039; steht für &amp;#039;&amp;#039;Argument Vector&amp;#039;&amp;#039; und ist ein Array aus Zeichenketten (Strings).  &lt;br /&gt;
Jedes Element zeigt auf eines der übergebenen Argumente.  &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
argv[0] → &amp;quot;./programm&amp;quot;&lt;br /&gt;
argv[1] → &amp;quot;test&amp;quot;&lt;br /&gt;
argv[2] → &amp;quot;123&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das letzte Element &amp;#039;&amp;#039;&amp;#039;argv[argc]&amp;#039;&amp;#039;&amp;#039; ist immer &amp;#039;&amp;#039;&amp;#039;NULL&amp;#039;&amp;#039;&amp;#039; und markiert das Ende des Arrays.&lt;br /&gt;
&lt;br /&gt;
== Beispielprogramm ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char* argv[]) {&lt;br /&gt;
    printf(&amp;quot;Anzahl der Argumente: %d\n&amp;quot;, argc);&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; argc; i++) {&lt;br /&gt;
        printf(&amp;quot;Argument %d: %s\n&amp;quot;, i, argv[i]);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wenn das Programm folgendermaßen aufgerufen wird:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
./prog Hallo Welt&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ergebnis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Anzahl der Argumente: 3&lt;br /&gt;
Argument 0: ./prog&lt;br /&gt;
Argument 1: Hallo&lt;br /&gt;
Argument 2: Welt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Umwandlung von Argumenten ==&lt;br /&gt;
Da alle Argumente in &amp;#039;&amp;#039;&amp;#039;argv[]&amp;#039;&amp;#039;&amp;#039; als Strings vorliegen, müssen sie bei Bedarf in andere Datentypen umgewandelt werden.  &lt;br /&gt;
Dazu können Funktionen aus der Standardbibliothek verwendet werden:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;atoi()&amp;#039;&amp;#039;&amp;#039; – Wandelt String in &amp;#039;&amp;#039;&amp;#039;int&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;atof()&amp;#039;&amp;#039;&amp;#039; – Wandelt String in &amp;#039;&amp;#039;&amp;#039;double&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;strtol()&amp;#039;&amp;#039;&amp;#039; – Wandelt String in &amp;#039;&amp;#039;&amp;#039;long int&amp;#039;&amp;#039;&amp;#039; (mit Fehlerkontrolle)&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char* argv[]) {&lt;br /&gt;
    if (argc &amp;gt; 1) {&lt;br /&gt;
        int zahl = atoi(argv[1]);&lt;br /&gt;
        printf(&amp;quot;Eingegebene Zahl: %d\n&amp;quot;, zahl);&lt;br /&gt;
    } else {&lt;br /&gt;
        printf(&amp;quot;Kein Argument übergeben.\n&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[main (C-Funktion)]]&lt;br /&gt;
* [[Kommandozeilenargument]]&lt;br /&gt;
* [[Datentyp (C)]]&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
* ISO/IEC 9899:2018 (C18) – Programming Language C  &lt;br /&gt;
* Kernighan, Brian W.; Ritchie, Dennis M.: &amp;#039;&amp;#039;The C Programming Language&amp;#039;&amp;#039;. Prentice Hall, 1988.&lt;/div&gt;</summary>
		<author><name>PhilKa</name></author>
	</entry>
</feed>