<?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[structs initialisieren]]></title><description><![CDATA[<p>Hoi,</p>
<p>offenbar kann man nen struct ja so initialisieren:</p>
<pre><code class="language-cpp">struct foo {
int i;
double d;
};

foo f = {2, 3.3};
</code></pre>
<p>Aber folgendes raffe ich jetzt nicht: Ich hab ne Struktur D3DXFONT_DESC, die sieht so aus:</p>
<pre><code class="language-cpp">struct D3DXFONT
{
    INT Height;
    UINT Width;
    UINT Weight;
    UINT MipLevels;
    BOOL Italic;
    BYTE CharSet;
    BYTE OutputPrecision;
    BYTE Quality;
    BYTE PitchAndFamily;
    CHAR FaceName[LF_FACESIZE];
};
</code></pre>
<p>Logischerweise geht das jetzt nicht:</p>
<pre><code class="language-cpp">D3DXFONT_DESC d;
d.FaceName = &quot;foo&quot;;
</code></pre>
<p>Aber wieso bitte geht dann DAS hier:</p>
<pre><code class="language-cpp">D3DXFONT_DESC fontDesc = { fontHeight, 0, static_cast&lt;unsigned int&gt;(fontWeight * 1000), 0, italic, DEFAULT_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_PITCH, &quot;foo&quot; };
</code></pre>
<p>Die Werte in den Klammern { } werden doch einfach 1:1 den Werten der Struktur zugewiesen. Wieso geht dann die Zuweisung von &quot;foo&quot; an FaceName nicht schief?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190966/structs-initialisieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 20:53:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190966.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Aug 2007 18:04:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to structs initialisieren on Tue, 28 Aug 2007 18:04:08 GMT]]></title><description><![CDATA[<p>Hoi,</p>
<p>offenbar kann man nen struct ja so initialisieren:</p>
<pre><code class="language-cpp">struct foo {
int i;
double d;
};

foo f = {2, 3.3};
</code></pre>
<p>Aber folgendes raffe ich jetzt nicht: Ich hab ne Struktur D3DXFONT_DESC, die sieht so aus:</p>
<pre><code class="language-cpp">struct D3DXFONT
{
    INT Height;
    UINT Width;
    UINT Weight;
    UINT MipLevels;
    BOOL Italic;
    BYTE CharSet;
    BYTE OutputPrecision;
    BYTE Quality;
    BYTE PitchAndFamily;
    CHAR FaceName[LF_FACESIZE];
};
</code></pre>
<p>Logischerweise geht das jetzt nicht:</p>
<pre><code class="language-cpp">D3DXFONT_DESC d;
d.FaceName = &quot;foo&quot;;
</code></pre>
<p>Aber wieso bitte geht dann DAS hier:</p>
<pre><code class="language-cpp">D3DXFONT_DESC fontDesc = { fontHeight, 0, static_cast&lt;unsigned int&gt;(fontWeight * 1000), 0, italic, DEFAULT_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_PITCH, &quot;foo&quot; };
</code></pre>
<p>Die Werte in den Klammern { } werden doch einfach 1:1 den Werten der Struktur zugewiesen. Wieso geht dann die Zuweisung von &quot;foo&quot; an FaceName nicht schief?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354017</guid><dc:creator><![CDATA[strukteur]]></dc:creator><pubDate>Tue, 28 Aug 2007 18:04:08 GMT</pubDate></item><item><title><![CDATA[Reply to structs initialisieren on Tue, 28 Aug 2007 18:06:13 GMT]]></title><description><![CDATA[<p>strukteur schrieb:</p>
<blockquote>
<p>Wieso geht dann die Zuweisung von &quot;foo&quot; an FaceName nicht schief?</p>
</blockquote>
<p>Weil es keine Zuweisung ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354019</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 28 Aug 2007 18:06:13 GMT</pubDate></item><item><title><![CDATA[Reply to structs initialisieren on Tue, 28 Aug 2007 18:07:46 GMT]]></title><description><![CDATA[<p>Was dann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354023</guid><dc:creator><![CDATA[strukteur]]></dc:creator><pubDate>Tue, 28 Aug 2007 18:07:46 GMT</pubDate></item><item><title><![CDATA[Reply to structs initialisieren on Tue, 28 Aug 2007 18:09:55 GMT]]></title><description><![CDATA[<p>strukteur schrieb:</p>
<blockquote>
<p>Was dann?</p>
</blockquote>
<p>Ich glaube es ist eine Initialisierung im Sinne eines Konstruktors. Folgendes geht ja auch: <code>char foo[4] = &quot;foo&quot;;</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354026</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 28 Aug 2007 18:09:55 GMT</pubDate></item><item><title><![CDATA[Reply to structs initialisieren on Tue, 28 Aug 2007 18:27:10 GMT]]></title><description><![CDATA[<p>strukteur schrieb:</p>
<blockquote>
<p>Was dann?</p>
</blockquote>
<p>Eine Initialisierung.</p>
<pre><code class="language-cpp">T x = a;
</code></pre>
<p>ist eine Initialisierung (und eine Definition).</p>
<pre><code class="language-cpp">x = a;
</code></pre>
<p>ist eine Zuweisung. Initialisierung bei Aggregaten (wie hier) zerfällt in die Initialisierung der einzelnen Elemente. Dort gilt aber weiterhin die gleiche Semantik:</p>
<pre><code class="language-cpp">char x[5] = &quot;foo&quot;; // ok, oder
char x[5] = { &quot;foo&quot; }; // aber nicht:
x = &quot;foo&quot;; // arrays kann nicht zugewiesen werden (x ist hier trotzdem ein lvalue ;) )

struct Y { char x[5]; };
Y y = { &quot;foo&quot; }; // ok, oder
Y y = { { &quot;foo&quot; } }; // aber nicht:
y.x = &quot;foo&quot;;  // arrays kann nicht zugewiesen werden
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1354037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354037</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 28 Aug 2007 18:27:10 GMT</pubDate></item><item><title><![CDATA[Reply to structs initialisieren on Tue, 28 Aug 2007 19:13:51 GMT]]></title><description><![CDATA[<p>Davon mal abgesehen das auch structs Konstruktoren haben können und man (ok in dem Beispiel nicht ideal) auch nen bissel Tipparbeit nachher sparen kann <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/1354075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354075</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Tue, 28 Aug 2007 19:13:51 GMT</pubDate></item></channel></rss>