<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[Gelöst] Grundfrage zur Hauptfunktion main()]]></title><description><![CDATA[<p>Hallo,</p>
<p>bin je gerade dabei C++ zu lernen und mir ist beim &quot;experimentieren&quot; eine recht simple Grundfrage aufgefallen wo ich leider keine &quot;genaue&quot; Erklärung für gefunden habe.</p>
<p>Evtl. könnte hier mir jemand dies Beantworten?<br />
Die Hauptfunktion wird ja in den meisten Beispielen wie folgt dargestellt:</p>
<pre><code class="language-cpp">int main(){}
</code></pre>
<p>oder auch mit:</p>
<pre><code class="language-cpp">void main(){}
</code></pre>
<p>Problemlos lies sich auch dies Kompilieren:</p>
<pre><code class="language-cpp">main(){}
</code></pre>
<p>Ich habe diese Erklärung dazu gefunden bzw. gelesen:</p>
<blockquote>
<p>Bedeutet dass das Programm main() nach Beendigung eine Zahl vom Typ int (abküzung für integer = englisch für ganze Zahl) an das Betriebssystem zurück gibt.</p>
</blockquote>
<p>Also dachte ich mir man könnte ja wenn man weiß das ein Ergebnis eine Fließkommazahl ist auch folgendes Verwenden:</p>
<pre><code class="language-cpp">float main()
</code></pre>
<p>Hier bekomme ich aber beim Kompilieren folgende Meldung:</p>
<pre><code>egle@Core2Quad:~/c++$ g++ test.cpp -o test
test.cpp:1:12: Fehler: »::main« muss »int« zurückgeben
egle@Core2Quad:~/c++$
</code></pre>
<p>Bedeutet dies nun das main() immer nur ganze Zahlen erwartet?<br />
Wenn ja könnte man eigentlich dann nicht gleich bei jedem Programm<br />
das ganze ohne das int benutzen also nur mittels main() ?</p>
<p>Oder liegt dies nur an meinem GCC Compiler (unter Linux) und ist also keine c++ Standardisierung?</p>
<p>Zumindest habe ich das auch bei etwas Längeren Code-Beispielen ausprobiert<br />
und dort aus dem &quot;int main()&quot; einfach nur ein &quot;main()&quot; geschrieben und die ausprobierten Beispiele ließen sich Problemlos kompilieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300268/gelöst-grundfrage-zur-hauptfunktion-main</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 22:10:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300268.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Feb 2012 08:49:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Sun, 04 Mar 2012 14:18:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bin je gerade dabei C++ zu lernen und mir ist beim &quot;experimentieren&quot; eine recht simple Grundfrage aufgefallen wo ich leider keine &quot;genaue&quot; Erklärung für gefunden habe.</p>
<p>Evtl. könnte hier mir jemand dies Beantworten?<br />
Die Hauptfunktion wird ja in den meisten Beispielen wie folgt dargestellt:</p>
<pre><code class="language-cpp">int main(){}
</code></pre>
<p>oder auch mit:</p>
<pre><code class="language-cpp">void main(){}
</code></pre>
<p>Problemlos lies sich auch dies Kompilieren:</p>
<pre><code class="language-cpp">main(){}
</code></pre>
<p>Ich habe diese Erklärung dazu gefunden bzw. gelesen:</p>
<blockquote>
<p>Bedeutet dass das Programm main() nach Beendigung eine Zahl vom Typ int (abküzung für integer = englisch für ganze Zahl) an das Betriebssystem zurück gibt.</p>
</blockquote>
<p>Also dachte ich mir man könnte ja wenn man weiß das ein Ergebnis eine Fließkommazahl ist auch folgendes Verwenden:</p>
<pre><code class="language-cpp">float main()
</code></pre>
<p>Hier bekomme ich aber beim Kompilieren folgende Meldung:</p>
<pre><code>egle@Core2Quad:~/c++$ g++ test.cpp -o test
test.cpp:1:12: Fehler: »::main« muss »int« zurückgeben
egle@Core2Quad:~/c++$
</code></pre>
<p>Bedeutet dies nun das main() immer nur ganze Zahlen erwartet?<br />
Wenn ja könnte man eigentlich dann nicht gleich bei jedem Programm<br />
das ganze ohne das int benutzen also nur mittels main() ?</p>
<p>Oder liegt dies nur an meinem GCC Compiler (unter Linux) und ist also keine c++ Standardisierung?</p>
<p>Zumindest habe ich das auch bei etwas Längeren Code-Beispielen ausprobiert<br />
und dort aus dem &quot;int main()&quot; einfach nur ein &quot;main()&quot; geschrieben und die ausprobierten Beispiele ließen sich Problemlos kompilieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186879</guid><dc:creator><![CDATA[EgLe]]></dc:creator><pubDate>Sun, 04 Mar 2012 14:18:36 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Wed, 29 Feb 2012 08:51:46 GMT]]></title><description><![CDATA[<p>Laut Standard sind die einzigen beiden, erlaubten Varianten</p>
<pre><code class="language-cpp">int main()
</code></pre>
<p>sowie</p>
<pre><code class="language-cpp">int main(int argc, char* argv[])
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2186880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186880</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Wed, 29 Feb 2012 08:51:46 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Wed, 29 Feb 2012 08:56:57 GMT]]></title><description><![CDATA[<p>EgLe schrieb:</p>
<blockquote>
<p>[...]<br />
oder auch mit:</p>
<pre><code class="language-cpp">void main(){}
</code></pre>
</blockquote>
<p>Das ist falsch.</p>
<p>EgLe schrieb:</p>
<blockquote>
<p>Problemlos lies sich auch dies Kompilieren:</p>
<pre><code class="language-cpp">main(){}
</code></pre>
</blockquote>
<p>Das ist ebenfalls falsch. In C++ gibts kein default int.</p>
<p>EgLe schrieb:</p>
<blockquote>
<p>Bedeutet dies nun das main() immer nur ganze Zahlen erwartet?<br />
Wenn ja könnte man eigentlich dann nicht gleich bei jedem Programm<br />
das ganze ohne das int benutzen also nur mittels main() ?</p>
</blockquote>
<p>Der C++ Standard schreibt vor, dass main einen int returned. Den Rückgabetyp wegzulassen, geht in C++ nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186882</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Wed, 29 Feb 2012 08:56:57 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Wed, 29 Feb 2012 08:59:21 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Laut Standard sind die einzigen beiden, erlaubten Varianten</p>
<pre><code class="language-cpp">int main()
</code></pre>
<p>sowie</p>
<pre><code class="language-cpp">int main(int argc, char* argv[])
</code></pre>
</blockquote>
<p>Genaugenommen sind das die einzigen beiden Varianten die jeder Compiler unterstützten muss. Der C++ Standard erlaubt auch weitere, compilerspezifische Varianten, solange der Rückgabetyp int ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186883</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Wed, 29 Feb 2012 08:59:21 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Wed, 29 Feb 2012 09:19:06 GMT]]></title><description><![CDATA[<p>Warum ist es denn so im Standard geschrieben? Was wenn main() nicht returned? Was ist der Sinn immer int zurückgeben zu müssen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186887</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 29 Feb 2012 09:19:06 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Wed, 29 Feb 2012 09:25:26 GMT]]></title><description><![CDATA[<p>Tim schrieb:</p>
<blockquote>
<p>Warum ist es denn so im Standard geschrieben?</p>
</blockquote>
<p>Damit es standardisiert ist.</p>
<blockquote>
<p>Was wenn main() nicht returned?</p>
</blockquote>
<p>Dann hört das Programm nicht auf. Na und?</p>
<blockquote>
<p>Was ist der Sinn immer int zurückgeben zu müssen?</p>
</blockquote>
<p>Damit der Aufrufer weiß, was zurück gegeben wird.</p>
<p>Diese Angaben gelten nämlich nur &quot;hosted implementations&quot;, d.h. für Programme die irgendwie in einer nicht näher spezifizierten Umgebung (das ist i.A. ein Betriebssystem) laufen. Diese Umgebung muss natürlich wissen, wie ein Programmaufruf aussieht und was sie da zurück bekommt. Für eine &quot;freestanding implementation&quot; ist die Form der main-Funktion, ja sogar die Existenz einer main-Funktion, gänzlich implementation defined.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186892</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 29 Feb 2012 09:25:26 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Wed, 29 Feb 2012 09:39:33 GMT]]></title><description><![CDATA[<p>Stimmt, dass es beim freestanding environment komplett frei ist hab ich überlesen. Ich dachte auch da wir ein int gefordert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186900</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186900</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 29 Feb 2012 09:39:33 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Wed, 29 Feb 2012 09:47:05 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">main(){}
</code></pre>
<p>Diese Variante stammt aus der vor C89 Zeit. Wenn euch K&amp;R C-Quelltext von vor 1990 vorliegt, seht ihr so etwas.</p>
<p>C++ von vor 1990? Da existiert wohl nur noch wenig Quelltext, der die Zeiten überdauert hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Das zur Geschichte.<br />
Nehmt heute:</p>
<pre><code class="language-cpp">int main( ...
</code></pre>
<p>MfG f.-th.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186907</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Wed, 29 Feb 2012 09:47:05 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Wed, 29 Feb 2012 09:52:14 GMT]]></title><description><![CDATA[<p>f.-th. schrieb:</p>
<blockquote>
<pre><code class="language-cpp">main(){}
</code></pre>
<p>Diese Variante stammt aus der vor C89 Zeit.</p>
</blockquote>
<p>Das war auch noch in C89 erlaubt.</p>
<blockquote>
<p>C++ von vor 1990? Da existiert wohl nur noch wenig Quelltext, der die Zeiten überdauert hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Oh doch. Manche schreiben sogar heute noch C++ von vor 1990 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186913</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Wed, 29 Feb 2012 09:52:14 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Wed, 29 Feb 2012 10:11:07 GMT]]></title><description><![CDATA[<p>Ich hab mir mal vor Jahren den ersten Borland C++ Compiler angesehen und versucht ein paar Programme mit dem zu erstellen.<br />
Ob ihr den Quelltext-Stil von damals wirklich sehen wollt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186920</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Wed, 29 Feb 2012 10:11:07 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Wed, 29 Feb 2012 11:16:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Hmm, hätte nicht gedacht das eine so &quot;simple&quot; Frage doch in dieser kurzen Zeit<br />
so reichlich an Antworten Liefert.</p>
<p>Vielen Dank für eure Antworten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Also kann ich davon ausgehen das der Standard im heutigen C++11?<br />
nur die beiden Programmaufrufe erlauben:</p>
<pre><code class="language-cpp">int main()
</code></pre>
<pre><code class="language-cpp">int main(int argc, char* argv[])
</code></pre>
<p>Die anderen Varianten die sich aber auch Kompilieren lassen sind dann eher mit<br />
der Rückwärts-Kompatibilität des GNU-Compiler zu den älterem C++ zu erklären.</p>
<p>Durch die vielen verschiedenen &quot;online Tutorials&quot; kam ich da echt ins Grübeln,<br />
und ich will ja wenn ich schon frisch C++ lerne auch den neusten und somit auch<br />
den &quot;recht aktuellen&quot; C++-Standard erlernen.</p>
<p>Habe zwar auch schon gelesen das es erst Kürzlich wieder eine neue<br />
Standardisierung gab, aber davon wird es ja für einen Anfänger wohl kaum<br />
schon eine deutsche ggf. Kostenfreie Version zu haben sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Also nochmals recht herzlichen Dank für eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186938</guid><dc:creator><![CDATA[EgLe]]></dc:creator><pubDate>Wed, 29 Feb 2012 11:16:45 GMT</pubDate></item><item><title><![CDATA[Reply to [Gelöst] Grundfrage zur Hauptfunktion main() on Wed, 29 Feb 2012 11:30:14 GMT]]></title><description><![CDATA[<p>EgLe schrieb:</p>
<blockquote>
<p>Habe zwar auch schon gelesen das es erst Kürzlich wieder eine neue<br />
Standardisierung gab, aber davon wird es ja für einen Anfänger wohl kaum<br />
schon eine deutsche ggf. Kostenfreie Version zu haben sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Hmm, theoretisch wird es wohl irgendwo eine DIN Übersetzung geben. Aber kostenlos ist weder das endgültige Dokument von DIN noch ISO. Wohl aber die späten Drafts, bei denen kaum noch Änderungen hinzugekommen sind:<br />
<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf" rel="nofollow">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf</a><br />
Es wird beim Programmieren jedoch allgemein davon ausgegangen, dass du Englisch Lesen und vielleicht auch ein bisschen Schreiben kannst. Nur mit Deutsch kommst du nicht einmal an die fortgeschrittenen Bücher und Webseiten, geschweige denn an heiße neue Entwicklungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186946</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 29 Feb 2012 11:30:14 GMT</pubDate></item></channel></rss>