<?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[Standard Frage]]></title><description><![CDATA[<p>Warum definiert der Standard eigentlich nicht die Größe der nativen Datentypen? z.B:<br />
char =&gt; 1 byte (ok, das ist schon definiert.)<br />
short =&gt; 2 byte<br />
long =&gt; 4 byte<br />
long long =&gt; 8 byte<br />
long long long =&gt; 16 byte (Oder so. ^^)<br />
float =&gt; 4 byte<br />
double =&gt; 8 byte<br />
long double =&gt; 10 byte (Oder 12? Hm..)</p>
<p>int =&gt; Eine der Voherigen, sollte Registerbreite entsprechen bzw. damit sollte das Zielsystem schnell rechnen können.</p>
<p>Das würde doch vieles leichter machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/292178/standard-frage</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 02:57:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/292178.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Sep 2011 17:42:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Standard Frage on Sun, 04 Sep 2011 17:42:25 GMT]]></title><description><![CDATA[<p>Warum definiert der Standard eigentlich nicht die Größe der nativen Datentypen? z.B:<br />
char =&gt; 1 byte (ok, das ist schon definiert.)<br />
short =&gt; 2 byte<br />
long =&gt; 4 byte<br />
long long =&gt; 8 byte<br />
long long long =&gt; 16 byte (Oder so. ^^)<br />
float =&gt; 4 byte<br />
double =&gt; 8 byte<br />
long double =&gt; 10 byte (Oder 12? Hm..)</p>
<p>int =&gt; Eine der Voherigen, sollte Registerbreite entsprechen bzw. damit sollte das Zielsystem schnell rechnen können.</p>
<p>Das würde doch vieles leichter machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2114808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2114808</guid><dc:creator><![CDATA[FragenstellerR]]></dc:creator><pubDate>Sun, 04 Sep 2011 17:42:25 GMT</pubDate></item><item><title><![CDATA[Reply to Standard Frage on Sun, 04 Sep 2011 18:01:39 GMT]]></title><description><![CDATA[<p>FragenstellerR schrieb:</p>
<blockquote>
<p>Das würde doch vieles leichter machen?</p>
</blockquote>
<p>1. Wieso?<br />
2. Denk mal an die Zukunft.<br />
3. Denk mal an den Rest der Welt (die ist nicht nur x86).<br />
4. <a href="http://en.wikipedia.org/wiki/Stdint.h" rel="nofollow">cstdint</a> gibt's neuerdings auch.</p>
<p>P.S.: Und ein Byte ist übrigens nicht als 8 Bit festgelegt, um mal dein Weltbild zu erschüttern <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>edit: Nur damit wir uns richtig verstehen: Du willst die Größen festlegen, oder? Denn Mindestgrößen in der Art wie du sie nennst, gibt es schon längst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2114814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2114814</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 04 Sep 2011 18:01:39 GMT</pubDate></item><item><title><![CDATA[Reply to Standard Frage on Sun, 04 Sep 2011 18:24:27 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>1. Wieso?</p>
</blockquote>
<p>Weil man sich dann darauf verlassen könnte, dass sizeof(short) _genau_ 2 ist, was sehr hilfreich sein kann, wenn man z.B. Systemnah programmiert.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>2. Denk mal an die Zukunft.</p>
</blockquote>
<p>Meinst du die Leute haben dann so viel Geld, dass ein long long nicht mehr reicht?^^</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>3. Denk mal an den Rest der Welt (die ist nicht nur x86).</p>
</blockquote>
<p>Ja.. und?</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>4. <a href="http://en.wikipedia.org/wiki/Stdint.h" rel="nofollow">cstdint</a> gibt's neuerdings auch.</p>
</blockquote>
<p>Ja, aber der ist nervig. Zumal ich ja immer noch keinen Nachteil darin sehen kann, den Typen definierte Größen zu geben.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>P.S.: Und ein Byte ist übrigens nicht als 8 Bit festgelegt, um mal dein Weltbild zu erschüttern <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><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Wie? Dann könnte das Ergebnis von</p>
<pre><code class="language-cpp">unsigned char c = 2 &lt;&lt; 1;
</code></pre>
<p>also 0 sein? (Überlauf)</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>edit: Nur damit wir uns richtig verstehen: Du willst die Größen festlegen, oder? Denn Mindestgrößen in der Art wie du sie nennst, gibt es schon längst.</p>
</blockquote>
<p>Ja, ich möchte sie festlegen, wobei Mindestgrößen auch schon nicht schlecht wären. Die gibt es schon? Bisher kannte ich nur</p>
<pre><code>char &lt;= short &lt;= int &lt;= long &lt;= long long
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2114822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2114822</guid><dc:creator><![CDATA[FragenstellerR]]></dc:creator><pubDate>Sun, 04 Sep 2011 18:24:27 GMT</pubDate></item><item><title><![CDATA[Reply to Standard Frage on Sun, 04 Sep 2011 18:36:46 GMT]]></title><description><![CDATA[<p>Die Anzahl Bytes für die Datentypen sollte schon der Compiler in Abhängigkeit des aktuellen Systems festlegen dürfen. Man will ja auch, dass der Compiler optimieren darf oder soll.</p>
<p>Denk mal über Portabilität nach! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Aber bei FORTRAN hatte es so etwas einmal gegeben mit INT2, INT4, REAL4, REAL8 - war nur nicht sehr portabel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2114826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2114826</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Sun, 04 Sep 2011 18:36:46 GMT</pubDate></item><item><title><![CDATA[Reply to Standard Frage on Sun, 04 Sep 2011 18:30:32 GMT]]></title><description><![CDATA[<p>char &gt;= 8 Bit<br />
short &gt;= 16 Bit<br />
long &gt;= 32 Bit<br />
long long &gt;= 64 Bit</p>
<blockquote>
<p>Meinst du die Leute haben dann so viel Geld, dass ein long long nicht mehr reicht?^^</p>
</blockquote>
<p>Nein, aber Computer mit 32 Bit Bytes und 256 Bit Wortbreite. Willst du das dann long long long long long long int nennen?</p>
<blockquote>
<p>Ja.. und?</p>
</blockquote>
<p>Es gibt Computer mit 9 Bit Bytes. Oder 48 Bit Bytes. Auf denen möchte man auch standardkonform programmieren können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2114827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2114827</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 04 Sep 2011 18:30:32 GMT</pubDate></item><item><title><![CDATA[Reply to Standard Frage on Sun, 04 Sep 2011 18:48:10 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Willst du das dann long long long long long long int nennen?</p>
</blockquote>
<p>very_long_int vielleicht.</p>
<p>Schon gut, ich bin überzeugt, außer dass mir Computer mit 9-bittigen Bytes wohl immer suspekt bleiben werden. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2114841</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2114841</guid><dc:creator><![CDATA[FragenstellerR]]></dc:creator><pubDate>Sun, 04 Sep 2011 18:48:10 GMT</pubDate></item><item><title><![CDATA[Reply to Standard Frage on Mon, 05 Sep 2011 08:11:34 GMT]]></title><description><![CDATA[<p>...um die liste von oben zu vervollständigen: Ein int hat auch mindestens 16 Bits.</p>
<p>Nächster Schock: Für negative Zahlen werden drei verschiedene Binärdarstellungen erlaubt. Nur eine davon ist das Zweierkomplement.</p>
<p>Bei Floats sieht es ähnlich aus.<br />
Ein 'float' ist mindestens so genau wie 6 Dezimalstellen (insgesamt)<br />
Ein 'double' ist mindestens so genau wie 10 Detimalstellen (insgesamt)<br />
Ein 'long double' ist mindestens so genau wie 10 Dezimalstellen (insgesamt)<br />
Ein double kann alle float-Werte exakt darstellen.<br />
Ein long double kann alle double-Werte exakt darstellen.</p>
<p>Darüber hinaus gibt es (wird es geben) stdint.h bzw cstdint. Dort findet man typedefs für &quot;mindestbreite-Typen&quot; wie z.B. int_least32_t. <em>Optional</em> gibt es &quot;exaktbreite-Typen&quot; wie int32_t. Bei den &quot;exaktbreite-Typen&quot; (sofern sie angeboten werden) wird auch das Zweierkomplement als Binärdarstellung von negativen Zahlen garantiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2114843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2114843</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 05 Sep 2011 08:11:34 GMT</pubDate></item><item><title><![CDATA[Reply to Standard Frage on Mon, 05 Sep 2011 07:48:08 GMT]]></title><description><![CDATA[<blockquote>
<p>Ja, aber der ist nervig. Zumal ich ja immer noch keinen Nachteil darin sehen kann, den Typen definierte Größen zu geben.</p>
</blockquote>
<p>Wieso nervig? Exakt was du suchst, imho perfekt um zu zeigen, dass die Größe des Integers nicht beliebig ist.</p>
<p>Und hey, du sparst praktisch immer Tipparbeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2115035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2115035</guid><dc:creator><![CDATA[Ethon_notloggedin]]></dc:creator><pubDate>Mon, 05 Sep 2011 07:48:08 GMT</pubDate></item><item><title><![CDATA[Reply to Standard Frage on Mon, 05 Sep 2011 08:16:35 GMT]]></title><description><![CDATA[<p>Was ich mich schon immer gefragt habe: wenn ich mich nicht darauf verlassen kann, dass ein Char 8 bit groß ist, wie setze ich dann die Übertragung von Binärdaten per Netzwerk um? Abgesehen von der Byte-Order weiß ich ja dann nie, wie viele Bits auf dem Empfangssystem einem Byte entsprechen. Wenn ich also auf dem Sendesystem 8 Bits pro Byte hab und auf dem Zielsystem 1 Bit, kann das doch gar nicht funktionieren. Wie wird das gelöst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2115051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2115051</guid><dc:creator><![CDATA[Fragesteller!!11]]></dc:creator><pubDate>Mon, 05 Sep 2011 08:16:35 GMT</pubDate></item><item><title><![CDATA[Reply to Standard Frage on Mon, 05 Sep 2011 08:27:05 GMT]]></title><description><![CDATA[<p>So etwas wie</p>
<pre><code class="language-cpp">#include &lt;climits&gt;

#if CHAR_BIT != 8
#error &quot;Dieses Programm ist nicht für exotische Maschinen ausgelegt&quot;
#endif
</code></pre>
<p>ist völlig OK. Ich würde mir darüber erst Sorgen machen, wenn es so weit ist, dass das Programm auf anderer Hardware laufen soll, wo CHAR_BIT==8 nicht gilt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2115055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2115055</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 05 Sep 2011 08:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to Standard Frage on Mon, 05 Sep 2011 08:45:21 GMT]]></title><description><![CDATA[<p>Das sind in der Praxis Schein-Probleme. Es wird nie wieder einen Mainstream-Prozessor geben, auf dem ein Byte nicht 8 Bits hat (Prozessoren für Spezialaufgaben ausgenommen). Warum sollte ein Hersteller sowas tun, es hätte doch nur Nachteile.</p>
<blockquote>
<p>Es gibt Computer mit 9 Bit Bytes. Oder 48 Bit Bytes. Auf denen möchte man auch standardkonform programmieren können.</p>
</blockquote>
<p>Im Wesentlichen <strong>gab</strong> es die, und die Hersteller dieser Möhren haben damals im Standardisierungsprozess so lange Terz gemacht, bis sie berücksichtigt wurden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2115064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2115064</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 05 Sep 2011 08:45:21 GMT</pubDate></item></channel></rss>