<?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[Statische Arraydaten als Funktionsparameter]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgendes Funktioniert:</p>
<pre><code class="language-cpp">void foo(const char * data)
{

}

// hier legt der compiler automatisch ein statisches char Array an und übergibt es der Funktion
foo(&quot;hello world&quot;);
</code></pre>
<p>Frage:<br />
kann man sowas (ähnliches) auch mit integern bzw. enum-Werten machen?</p>
<pre><code class="language-cpp">enum someId
{
    id0,
    id1,
    id2,
    id3,
    idInvalid
};

class CFoo()
{
public:
	CFoo(const someId * configuration);
}

// das hier ist unschön, da die Konfiguration getrennt von den Objekten angelegt werden muss
static const someId[] config0 = {id0, id2, idInvalid};
static const someId[] config1 = {id1, id2, id3, idInvalid};
CFoo foo0(config0);
CFoo foo1(config1);

// so etwas wäre schöner, compiliert aber in der Form leider nicht.
CFoo foo0({id0, id2, idInvalid});
CFoo foo1({id1, id2, id3, idInvalid});
</code></pre>
<p>=&gt; Kann man den Compiler dazu veranlassen, das Array analog zu den strings automtatisch zu generieren?</p>
<p>Vielen Dank und schöne Grüße,<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/295855/statische-arraydaten-als-funktionsparameter</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 06:42:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/295855.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Nov 2011 09:49:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Statische Arraydaten als Funktionsparameter on Wed, 23 Nov 2011 09:49:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgendes Funktioniert:</p>
<pre><code class="language-cpp">void foo(const char * data)
{

}

// hier legt der compiler automatisch ein statisches char Array an und übergibt es der Funktion
foo(&quot;hello world&quot;);
</code></pre>
<p>Frage:<br />
kann man sowas (ähnliches) auch mit integern bzw. enum-Werten machen?</p>
<pre><code class="language-cpp">enum someId
{
    id0,
    id1,
    id2,
    id3,
    idInvalid
};

class CFoo()
{
public:
	CFoo(const someId * configuration);
}

// das hier ist unschön, da die Konfiguration getrennt von den Objekten angelegt werden muss
static const someId[] config0 = {id0, id2, idInvalid};
static const someId[] config1 = {id1, id2, id3, idInvalid};
CFoo foo0(config0);
CFoo foo1(config1);

// so etwas wäre schöner, compiliert aber in der Form leider nicht.
CFoo foo0({id0, id2, idInvalid});
CFoo foo1({id1, id2, id3, idInvalid});
</code></pre>
<p>=&gt; Kann man den Compiler dazu veranlassen, das Array analog zu den strings automtatisch zu generieren?</p>
<p>Vielen Dank und schöne Grüße,<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147720</guid><dc:creator><![CDATA[Martin123]]></dc:creator><pubDate>Wed, 23 Nov 2011 09:49:28 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Arraydaten als Funktionsparameter on Wed, 23 Nov 2011 15:08:28 GMT]]></title><description><![CDATA[<p>In C++11 geht das per std::initializer_list.</p>
<p>z.B.</p>
<pre><code class="language-cpp">// Die normale Funktion
void foo(int const * bar)
{
    // mach was mit bar
}

// Ein Wrapper um die normale Funktion
void foo(initializer_list&lt;int&gt; init)
{
    // laut cppreference.com liefert begin einen Zeiger auf das erste Element
    foo(init.begin());
    // alternativ, um sicher zu gehen, falls begin doch einen Iterator liefert
    foo(&amp;(*(init.begin())));
}

// Aufruf:
foo({1, 2, 3});
// das ruft erst die Funktion mit der initializer_list auf, welche wiederum deine eigentliche Funktion aufruft.
</code></pre>
<p>Da das ein C++11 Feature ist, solltest du aber erstmal in der Doku deines Compilers nachschlagen, ob dieser initializer_lists bereits unterstützt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2147867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2147867</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Wed, 23 Nov 2011 15:08:28 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Arraydaten als Funktionsparameter on Thu, 24 Nov 2011 11:15:35 GMT]]></title><description><![CDATA[<p>Hallo DrakoXP,</p>
<p>danke für deine Antwort.<br />
Dann führt an der &quot;unschönen&quot; Lösung wohl kein Weg vorbei.<br />
Bin auf einem Embedded-System unterwegs und hab nicht mal die normale STL zur Verfügung, von C++11 Features ganz zu schweigen :-(.</p>
<p>Gruß,<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2148151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2148151</guid><dc:creator><![CDATA[Martin123]]></dc:creator><pubDate>Thu, 24 Nov 2011 11:15:35 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Arraydaten als Funktionsparameter on Thu, 24 Nov 2011 11:53:32 GMT]]></title><description><![CDATA[<p>Ich kann zwar sehen, warum man im embedded-Bereich keine STL hat, aber Initializer-Lists sind doch nur Syntax, keine Funktionalität. Das wäre wie zu sagen, dass im embedded-Bereich immer <code>&gt; &gt;</code> statt <code>&gt;&gt;</code> geschrieben werden muss, wenn man zwei Templateklammern schließt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2148168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2148168</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 24 Nov 2011 11:53:32 GMT</pubDate></item></channel></rss>