<?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[Hallo Welt ohne iostream?]]></title><description><![CDATA[<p>Ich steh gerade aufm Schlauch. Ohne groß herumzureden: Wie sieht jetzt ein C++ Programm aus, welches ohne irgendwelche Sachen aus den C++-Headern &quot;Hallo, Welt!&quot; auf dem Bildschirm ausgibt? Ich meine, man muss doch irgendiwe auf betriebssystemspezifische Sachen zugreifen, aber wenn ich meine hallo_welt.cpp mit -E (unter g++ sieht man dann die Datei, nachdem sie vom Präprozessor bearbeitet wurde) kompiliere und das ganze dann in eine andere Datei umleite, hab ich da so 13000 Zeilen Code, aber nur bekanntes Zeugs aus der STL oder iostream. Wie genau komm ich denn auf meine Ausgabe?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308411/hallo-welt-ohne-iostream</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 21:12:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308411.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Sep 2012 16:02:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hallo Welt ohne iostream? on Mon, 24 Sep 2012 16:02:22 GMT]]></title><description><![CDATA[<p>Ich steh gerade aufm Schlauch. Ohne groß herumzureden: Wie sieht jetzt ein C++ Programm aus, welches ohne irgendwelche Sachen aus den C++-Headern &quot;Hallo, Welt!&quot; auf dem Bildschirm ausgibt? Ich meine, man muss doch irgendiwe auf betriebssystemspezifische Sachen zugreifen, aber wenn ich meine hallo_welt.cpp mit -E (unter g++ sieht man dann die Datei, nachdem sie vom Präprozessor bearbeitet wurde) kompiliere und das ganze dann in eine andere Datei umleite, hab ich da so 13000 Zeilen Code, aber nur bekanntes Zeugs aus der STL oder iostream. Wie genau komm ich denn auf meine Ausgabe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2253996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2253996</guid><dc:creator><![CDATA[Incocnito]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:02:22 GMT</pubDate></item><item><title><![CDATA[Reply to Hallo Welt ohne iostream? on Mon, 24 Sep 2012 16:05:11 GMT]]></title><description><![CDATA[<p><a href="http://ideone.com/uTAVt" rel="nofollow">http://ideone.com/uTAVt</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2253998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2253998</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:05:11 GMT</pubDate></item><item><title><![CDATA[Reply to Hallo Welt ohne iostream? on Mon, 24 Sep 2012 16:05:20 GMT]]></title><description><![CDATA[<p>Weil das eigentlich interessant in der runtime-Bibliothek passiert. read/write sind Systemaufrufe, stdin/stdout sind nur File-Deskriptoren (unter Unixoiden), diese werden von der Laufzeitbibliothek gekapselt. Der Rest macht das Betriebsystem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2253999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2253999</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:05:20 GMT</pubDate></item><item><title><![CDATA[Reply to Hallo Welt ohne iostream? on Mon, 24 Sep 2012 16:23:14 GMT]]></title><description><![CDATA[<p>Ich verstehs immer noch nicht richtig. Wo genau steht das denn jetzt im Code? Ich hab zwar sowas hier gefunden</p>
<pre><code class="language-cpp">extern &quot;C&quot;
{
 int __attribute__((__cdecl__)) __attribute__ ((__nothrow__)) fwprintf (FILE*, const wchar_t*, ...);
 int __attribute__((__cdecl__)) __attribute__ ((__nothrow__)) wprintf (const wchar_t*, ...);

//noch viel mehr davon.. (aber kein direktes printf)
}
</code></pre>
<p>und dazu noch sowas</p>
<pre><code class="language-cpp">namespace std
{
using ::vwprintf;

  using ::vwscanf;
//und so weiter
}
</code></pre>
<p>Aber benutzt werden diese Funktionen irgendwie auch nicht im Code. Knivil's Erklärung leuchtet mir nicht wirklich ein..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254003</guid><dc:creator><![CDATA[Incocnito]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:23:14 GMT</pubDate></item><item><title><![CDATA[Reply to Hallo Welt ohne iostream? on Mon, 24 Sep 2012 16:23:22 GMT]]></title><description><![CDATA[<p>In diesem Fall muss das keine variadic function sein:<br />
<a href="http://ideone.com/p6Svk" rel="nofollow">http://ideone.com/p6Svk</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254004</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:23:22 GMT</pubDate></item><item><title><![CDATA[Reply to Hallo Welt ohne iostream? on Mon, 24 Sep 2012 16:25:40 GMT]]></title><description><![CDATA[<p>Incocnito schrieb:</p>
<blockquote>
<p>Ich verstehs immer noch nicht richtig. Wo genau steht das denn jetzt im Code? Ich hab zwar sowas hier gefunden</p>
<pre><code class="language-cpp">extern &quot;C&quot;
{
 int __attribute__((__cdecl__)) __attribute__ ((__nothrow__)) fwprintf (FILE*, const wchar_t*, ...);
 int __attribute__((__cdecl__)) __attribute__ ((__nothrow__)) wprintf (const wchar_t*, ...);

//noch viel mehr davon.. (aber kein direktes printf)
}
</code></pre>
<p>und dazu noch sowas</p>
<pre><code class="language-cpp">namespace std
{
using ::vwprintf;

  using ::vwscanf;
//und so weiter
}
</code></pre>
</blockquote>
<p>Zeile 385 in meiner <code>stdio.h</code> (MinGW GCC 4.8):</p>
<pre><code class="language-cpp">int __cdecl printf(const char * __restrict__ _Format,...);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2254005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254005</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:25:40 GMT</pubDate></item><item><title><![CDATA[Reply to Hallo Welt ohne iostream? on Mon, 24 Sep 2012 16:30:39 GMT]]></title><description><![CDATA[<p>Super, aber in meiner Datei g++ hallo_welt.cpp -E &gt; xy.cpp steht nix von printf. Da sind, wie oben schon steht, ein paar Deklarationen und so, aber aufgerufen wird davon nichts (Strg-f sagt zumindest, dass diese Funktionen nur 2 mal, einmal in der Deklaration und in der using-Direktive vorkommen).<br />
Entweder habe ich -E falsch verstanden oder aber eben das Thema meiner Frage nicht.</p>
<p>Edit: Aber das kann man doch schlecht falsch verstehn:</p>
<blockquote>
<p>Use the -E option to limit g++ to the preprocessor. This will cause g++ to process #include and #define directives and put the resulting source file on standard output.</p>
<p>g++ -E message.C &gt;message.e</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2254007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254007</guid><dc:creator><![CDATA[Incocnito]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:30:39 GMT</pubDate></item><item><title><![CDATA[Reply to Hallo Welt ohne iostream? on Mon, 24 Sep 2012 16:37:58 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>In diesem Fall muss das keine variadic function sein:<br />
<a href="http://ideone.com/p6Svk" rel="nofollow">http://ideone.com/p6Svk</a></p>
</blockquote>
<p>UB.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254011</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:37:58 GMT</pubDate></item><item><title><![CDATA[Reply to Hallo Welt ohne iostream? on Mon, 24 Sep 2012 16:47:35 GMT]]></title><description><![CDATA[<p>Incocnito schrieb:</p>
<blockquote>
<p>Super, aber in meiner Datei g++ hallo_welt.cpp -E &gt; xy.cpp steht nix von printf. Da sind, wie oben schon steht, ein paar Deklarationen und so, aber aufgerufen wird davon nichts (Strg-f sagt zumindest, dass diese Funktionen nur 2 mal, einmal in der Deklaration und in der using-Direktive vorkommen).<br />
Entweder habe ich -E falsch verstanden oder aber eben das Thema meiner Frage nicht.</p>
<p>Edit: Aber das kann man doch schlecht falsch verstehn:</p>
</blockquote>
<p>Du weißt nicht, wie Header funktionieren. Das ist dein Problem.</p>
<p>Im fertigen Programm steht ein Aufruf an printf, welches wiederum aus der Laufzeitbibliothek gelinkt wird. Während des Compilierens reicht es zu wissen, dass eine solche Funktion existiert, aber es braucht niemand zu wissen, wie sie aussieht.</p>
<p>Wenn wieder wissen willst, wie printf funktionert: Es gibt ja OpenSource :p . Da wirst du aber auch nicht glücklich, unter Linuxruntimes wird da einfach nur read und write drinstehen (siehe knivil). Und wie read und write wieder funktionieren, kannst du natürlich auch nachlesen, aber wirst vermutlich auch dort nicht glücklich, weil du dich noch durch 20 weitere Abstraktionsschichten wühlen musst, damit irgendwann am Ende das BIOS der Grafikkarte ein paar Bytes im Grafikspeicher dreht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254012</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:47:35 GMT</pubDate></item><item><title><![CDATA[Reply to Hallo Welt ohne iostream? on Mon, 24 Sep 2012 16:47:20 GMT]]></title><description><![CDATA[<blockquote>
<p>aber in meiner Datei g++ hallo_welt.cpp -E &gt; xy.cpp steht nix von printf</p>
</blockquote>
<p>Muss auch nicht. Was am Ende konkret bei der Runtime aufgerufen wird, ist implementationsspezifisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2254013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2254013</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 24 Sep 2012 16:47:20 GMT</pubDate></item></channel></rss>