<?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[genaue Große von Datentyp definieren]]></title><description><![CDATA[<p>Hallo,</p>
<p>gibt es eine Möglichkeit eigenen Datentypen eine genaue Größe (in Bit) zuzuweisen?<br />
Also der Standard macht ja (afaik) in der Regel nur Aussagen zu Mindestgrößen.</p>
<p>Ich dachte dabei an einen Datentyp, der exakt 8 bits ist.<br />
char ist ja mindestens 8bit groß, oder? Aber nicht genau...</p>
<p>Gruß,<br />
Newbie</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265719/genaue-große-von-datentyp-definieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 19:27:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265719.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Apr 2010 21:49:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to genaue Große von Datentyp definieren on Tue, 27 Apr 2010 21:49:21 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>gibt es eine Möglichkeit eigenen Datentypen eine genaue Größe (in Bit) zuzuweisen?<br />
Also der Standard macht ja (afaik) in der Regel nur Aussagen zu Mindestgrößen.</p>
<p>Ich dachte dabei an einen Datentyp, der exakt 8 bits ist.<br />
char ist ja mindestens 8bit groß, oder? Aber nicht genau...</p>
<p>Gruß,<br />
Newbie</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889190</guid><dc:creator><![CDATA[Newbie19]]></dc:creator><pubDate>Tue, 27 Apr 2010 21:49:21 GMT</pubDate></item><item><title><![CDATA[Reply to genaue Große von Datentyp definieren on Tue, 27 Apr 2010 21:52:09 GMT]]></title><description><![CDATA[<p>Wie du korrekt angemerkt hast kann dir das der Standard nicht garantieren. Allerdings kann es eine spezifische Implementierung.</p>
<p>Üblicherweise definierst du einfach mit einem typedef den gewünschten Typen mit der aktuellen Grösse in einem seperaten File und vermerkst halt irgendwo, dass beim portieren dort der Typ ev. angepasst werden muss auf den zu der aktuellen Implementierung passenden Typen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889192</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 27 Apr 2010 21:52:09 GMT</pubDate></item><item><title><![CDATA[Reply to genaue Große von Datentyp definieren on Tue, 27 Apr 2010 21:57:06 GMT]]></title><description><![CDATA[<p>Hab dir in dem anderen Thread schon geantwortet:</p>
<p>aber lt. standard ist char genau 8bit groß:</p>
<p>ISO/IEC 14882:2003(E) --- 5.3.3 Sizeof schrieb:</p>
<blockquote>
<p>1. The sizeof operator yields the number of bytes in the object representation of its operand. The operand is either an expression, which is not evaluated, or a parenthesized type-id. The sizeof operator shall not be applied to an expression that has function or incomplete type, or to an enumeration type before all its enumerators have been declared, or to the parenthesized name of such types, or to an lvalue that designates a bit-field. <strong>sizeof(char), sizeof(signed char) and sizeof(unsigned char) are 1;</strong> the result of sizeof applied to any other fundamental type (3.9.1) is implementation-defined. [Note: in particular, sizeof(bool) and sizeof(wchar_t) are implementation-defined.69) ] [Note: See 1.7 for the definition of byte and 3.9 for the definition of object representation. ]</p>
</blockquote>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889195</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 27 Apr 2010 21:57:06 GMT</pubDate></item><item><title><![CDATA[Reply to genaue Große von Datentyp definieren on Tue, 27 Apr 2010 21:57:23 GMT]]></title><description><![CDATA[<p>Der Standard garantiert <code>sizeof(char) == 1</code> . Die meisten verbreiteten Architekturen arbeiten mit 8 Bit pro Byte, also sollte das hinkommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889196</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 27 Apr 2010 21:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to genaue Große von Datentyp definieren on Tue, 27 Apr 2010 22:39:00 GMT]]></title><description><![CDATA[<p>Wie schon gesagt, ist char <strong>mindestens</strong> 8 Bit groß.</p>
<p>Es gibt eine Klasse std::vector&lt;bool&gt;, bei der wird vom Standard garantiert, dass sie (im Rahmen der Möglichkeiten der unterliegenden Architektur) bitweise vorliegende Daten möglichst platzsparend speichert. Das ist dann auch 100% portabel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889213</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 27 Apr 2010 22:39:00 GMT</pubDate></item><item><title><![CDATA[Reply to genaue Große von Datentyp definieren on Wed, 28 Apr 2010 00:39:20 GMT]]></title><description><![CDATA[<p><a href="http://www.informit.com/guides/content.aspx?g=cplusplus&amp;seqNum=98" rel="nofollow">What You Should Know about vector&lt;bool&gt;</a><br />
*würg*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889219</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 28 Apr 2010 00:39:20 GMT</pubDate></item><item><title><![CDATA[Reply to genaue Große von Datentyp definieren on Wed, 28 Apr 2010 03:07:22 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>lt. standard ist char genau 8bit groß:</p>
</blockquote>
<p>Das stimmt nicht. Per Definition belegt ein char ein Byte. Aber es ist nicht festgelegt, dass ein Byte aus 8 Bits besteht. Ein Byte ist einfach das kleinste, was sich im Speicher adressieren lässt. Das müssen keine Oktette sein. Dafür gibt es in &lt;climits&gt; ja auch das Makro CHAR_BIT, welches zu einer Ganzzahlkonstante expandiert, die mindestens 8 ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889222</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 28 Apr 2010 03:07:22 GMT</pubDate></item><item><title><![CDATA[Reply to genaue Große von Datentyp definieren on Wed, 28 Apr 2010 07:50:39 GMT]]></title><description><![CDATA[<p>Im Prinzip kann es einem doch egal sein, ob ein Typ <strong>genau</strong> x Bits groß ist, solange der Standard garantiert, dass es nicht weniger als x Bits sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889278</guid><dc:creator><![CDATA[SALOMON]]></dc:creator><pubDate>Wed, 28 Apr 2010 07:50:39 GMT</pubDate></item><item><title><![CDATA[Reply to genaue Große von Datentyp definieren on Wed, 28 Apr 2010 08:45:55 GMT]]></title><description><![CDATA[<p>ähnliches Thema im anderen Thread (bzgl. bit-Größen von char usw.): <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1889286.html#1889286" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-p-is-1889286.html#1889286</a></p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Es gibt eine Klasse std::vector&lt;bool&gt;, bei der wird vom Standard garantiert, dass sie (im Rahmen der Möglichkeiten der unterliegenden Architektur) bitweise vorliegende Daten möglichst platzsparend speichert. Das ist dann auch 100% portabel.</p>
</blockquote>
<p>vector&lt;bool&gt; ist der verunglückte Versuch, einen speziell platzsparenden Container für bools zu bauen. Bitweise vorliegende Datenwären vermutlich in einem bitset besser untergebracht. Wenn man denn wirklich um jedes einzelne Bit feilschen muss...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889295</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 28 Apr 2010 08:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to genaue Große von Datentyp definieren on Wed, 28 Apr 2010 13:51:10 GMT]]></title><description><![CDATA[<p>SALOMON schrieb:</p>
<blockquote>
<p>Im Prinzip kann es einem doch egal sein, ob ein Typ <strong>genau</strong> x Bits groß ist, solange der Standard garantiert, dass es nicht weniger als x Bits sind?</p>
</blockquote>
<p>Nun ja, ich kann mir durchaus Situationen vorstellen, in denen man sich auf die Grösse der Datentypen verlassen muss. Zum Beispiel in vielen Fällen, wo <code>reinterpret_cast</code> im Spiel ist. Das bezieht sich zwar meistens auf plattformabhängige Low-Level-Operationen, aber kann eben trotzdem vorkommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889477</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 28 Apr 2010 13:51:10 GMT</pubDate></item><item><title><![CDATA[Reply to genaue Große von Datentyp definieren on Wed, 28 Apr 2010 15:20:27 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>SALOMON schrieb:</p>
<blockquote>
<p>Im Prinzip kann es einem doch egal sein, ob ein Typ <strong>genau</strong> x Bits groß ist, solange der Standard garantiert, dass es nicht weniger als x Bits sind?</p>
</blockquote>
<p>Nun ja, ich kann mir durchaus Situationen vorstellen, in denen man sich auf die Grösse der Datentypen verlassen muss. Zum Beispiel in vielen Fällen, wo <code>reinterpret_cast</code> im Spiel ist. Das bezieht sich zwar meistens auf plattformabhängige Low-Level-Operationen, aber kann eben trotzdem vorkommen.</p>
</blockquote>
<p>zwischen &quot;sich auf die Größe verlassen&quot; und &quot;eine bestimmte Größe explizit zuweisen&quot; ist aber noch ein Unterschied. Ersteres ist wie du gesagt hast meist spezifisch für eine Plattform gedacht, letzteres wäre allgemeingültig/portabel - zumindest würde ich die Frage so interpretieren. Fürs plattformspezifische/sich drauf verlassen gibts #ifdef + #error + CompilerArtDefinierte Makros bzw. dinge wie static_assert/BOOST_STATIC_ASSERT</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1889525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1889525</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 28 Apr 2010 15:20:27 GMT</pubDate></item></channel></rss>