<?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[Problem mit struct (Bit Fields)]]></title><description><![CDATA[<p>Hallo.</p>
<p>Erst einmal ein bisschen Quelltext, der für mein Problem relevant ist:</p>
<pre><code>struct SPackageHeader {
	unsigned short	isPackageHeader	: 1,
	                  payloadSize		: 11,
	                  channel			: 4;
};
</code></pre>
<pre><code>SPackageHeader header;
header.isPackageHeader = 1;
header.payloadSize = 2048;
header.channel = 0;
</code></pre>
<p>Sofort nachdem dieser Quelltext abgearbeitet ist, ermittele ich per Debugger, dass der Wert von header.payloadSize &quot;0&quot; ist.<br />
Was mache ich falsch? Habe ich etwas falsch verstanden bei Bit Fields?^^</p>
<p>Mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183275/problem-mit-struct-bit-fields</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 05:35:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183275.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 03 Jun 2007 15:23:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit struct (Bit Fields) on Sun, 03 Jun 2007 15:26:35 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Erst einmal ein bisschen Quelltext, der für mein Problem relevant ist:</p>
<pre><code>struct SPackageHeader {
	unsigned short	isPackageHeader	: 1,
	                  payloadSize		: 11,
	                  channel			: 4;
};
</code></pre>
<pre><code>SPackageHeader header;
header.isPackageHeader = 1;
header.payloadSize = 2048;
header.channel = 0;
</code></pre>
<p>Sofort nachdem dieser Quelltext abgearbeitet ist, ermittele ich per Debugger, dass der Wert von header.payloadSize &quot;0&quot; ist.<br />
Was mache ich falsch? Habe ich etwas falsch verstanden bei Bit Fields?^^</p>
<p>Mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297837</guid><dc:creator><![CDATA[the*V*oid]]></dc:creator><pubDate>Sun, 03 Jun 2007 15:26:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit struct (Bit Fields) on Sun, 03 Jun 2007 16:21:33 GMT]]></title><description><![CDATA[<p>the[V]oid schrieb:</p>
<blockquote>
<p>Was mache ich falsch? Habe ich etwas falsch verstanden bei Bit Fields?^^</p>
</blockquote>
<p>Nein, aber offensichtlich bei Bit-Berechnungen. 'payloadSize' fasst nur Werte von 0 bis 2047.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297889</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 03 Jun 2007 16:21:33 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit struct (Bit Fields) on Sat, 30 Jun 2007 15:57:27 GMT]]></title><description><![CDATA[<p>Ja das war'n peinlicher vergucker ^^ Aber danke, daran lag's... hab' aber ein neues Problem damit:</p>
<pre><code>struct SUniversalHeader {
	unsigned short	headerType		 : 2,
					  size			   : 14;
	unsigned char	 channel			: 8;
};

std::cout &lt;&lt; sizeof(SUniversalHeader); // gibt 4 aus
</code></pre>
<p>Woran kann das liegen? Eigentlich müsste die Größe von SUniversalHeader doch 3 Bytes sein... Ein short ist laut sizeof 2 Bytes groß und ein char logischerweise 1 Byte.</p>
<p>mfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315721</guid><dc:creator><![CDATA[the*V*oid]]></dc:creator><pubDate>Sat, 30 Jun 2007 15:57:27 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit struct (Bit Fields) on Sat, 30 Jun 2007 16:14:14 GMT]]></title><description><![CDATA[<p>nennt sich glaub ich byte-alignment. da setzt dein compiler ein paddingbyte dazu. das macht er damit er immer auf 4 byte speicherausrichtung kommt.<br />
hoffe das das mal so stimmt, sonst berichtigt mich mal bitte.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315732</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sat, 30 Jun 2007 16:14:14 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit struct (Bit Fields) on Sat, 30 Jun 2007 17:13:00 GMT]]></title><description><![CDATA[<p>Das glaube ich weniger, denn im ersten Beispiel (ich hab den Code nochmal kopiert) liefert ein sizeof(SPackageHeader) 3 Bytes:</p>
<pre><code>struct SPackageHeader {
	unsigned short	isPackageHeader	: 1,
	                  payloadSize		: 11,
	                  channel			: 4;
};
</code></pre>
<p>Oder ich habe dich nicht verstanden ^^</p>
<p>EDIT: ich meinte natürlich 2 und nich 3 Bytes <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/1315771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315771</guid><dc:creator><![CDATA[the*V*oid]]></dc:creator><pubDate>Sat, 30 Jun 2007 17:13:00 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit struct (Bit Fields) on Sat, 30 Jun 2007 17:02:20 GMT]]></title><description><![CDATA[<p>re</p>
<p>the[V]oid schrieb:</p>
<blockquote>
<p>Das glaube ich weniger, denn im ersten Beispiel (ich hab den Code nochmal kopiert) liefert ein sizeof(SPackageHeader) 3 Bytes</p>
</blockquote>
<p>das glaub ich mal fast nicht. ich denke eher das du da 2 bekommst<br />
zumindest faellt mir jetzt kein plausibler grund ein, warum hier sizeof 3 ausgeben sollte.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315777</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sat, 30 Jun 2007 17:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit struct (Bit Fields) on Sat, 30 Jun 2007 17:12:38 GMT]]></title><description><![CDATA[<p>Ja, Tschuldigung, ich meinte natürlich 2 ^^ Aber trotzdem, das würde doch diese Alignment-Sache widerlegen, nich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315782</guid><dc:creator><![CDATA[the*V*oid]]></dc:creator><pubDate>Sat, 30 Jun 2007 17:12:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit struct (Bit Fields) on Sat, 30 Jun 2007 17:23:44 GMT]]></title><description><![CDATA[<p>insofern hast du recht das er scheinbar nicht auf 4 byte sondern auf 2 byte grenzen ausrichtet.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1315790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1315790</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sat, 30 Jun 2007 17:23:44 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit struct (Bit Fields) on Sun, 01 Jul 2007 21:47:47 GMT]]></title><description><![CDATA[<p>Meep Meep schrieb:</p>
<blockquote>
<p>insofern hast du recht das er scheinbar nicht auf 4 byte sondern auf 2 byte grenzen ausrichtet.</p>
<p>Meep Meep</p>
</blockquote>
<p>Da hast du sicherlich völlig recht.</p>
<p>Mööp Mööp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1316499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1316499</guid><dc:creator><![CDATA[Mööp Mööp]]></dc:creator><pubDate>Sun, 01 Jul 2007 21:47:47 GMT</pubDate></item></channel></rss>