<?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[stdarg.h va_start &amp;lt;-- wieso warning ?]]></title><description><![CDATA[<p>Hi !<br />
Ich hab mich gerade mal mit funktionen mit n belibigen parametern beschäftigt...</p>
<p>Hier mal ein funktionierendes beispiel:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;
#include &lt;stdarg.h&gt;

void varParams(int cnt, ... )
{
	va_list params; 
	int intpar;    
	va_start(params, cnt); 

	for (int i=0; i&lt;cnt; i++)
	{
		  intpar = va_arg(params, int);
		  cout &lt;&lt; intpar &lt;&lt; endl;      
	}
	cout &lt;&lt; &quot;---&quot; &lt;&lt; endl;
	va_end(params);
}

int main()
{
	varParams(2, 5, 2);
	return 0;
}
</code></pre>
<p>Mein Problem ist jetzt, wenn ich den parameter cnt in der funktion initialisiere,bekomme ich folgende warnung:</p>
<pre><code>Warnung: Zweiter Parameter von »va_start« ist nicht letztgenanntes Argument [standardmäßig aktiviert]
</code></pre>
<p>Beispiel:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;
#include &lt;stdarg.h&gt;

void varParams(int cnt, ... )
{
	va_list params; 
	int intpar;    

	int cnt2 = 2; 

	va_start(params, cnt2); 

	for (int i=0; i&lt;cnt2; i++)
	{
		  intpar = va_arg(params, int);
		  cout &lt;&lt; intpar &lt;&lt; endl;      
	}
	cout &lt;&lt; &quot;---&quot; &lt;&lt; endl;
	va_end(params);
}

int main()
{
	varParams(2, 5, 2);
	return 0;
}
</code></pre>
<p>Meine frage ist:<br />
a) was bedeutet dieses warning genau ?<br />
b) wie kann ich es ausschalten / umgehen ?</p>
<p>Mfg Benny</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/312724/stdarg-h-va_start-lt-wieso-warning</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 17:07:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/312724.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 12 Jan 2013 14:29:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to stdarg.h va_start &amp;lt;-- wieso warning ? on Sat, 12 Jan 2013 14:29:51 GMT]]></title><description><![CDATA[<p>Hi !<br />
Ich hab mich gerade mal mit funktionen mit n belibigen parametern beschäftigt...</p>
<p>Hier mal ein funktionierendes beispiel:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;
#include &lt;stdarg.h&gt;

void varParams(int cnt, ... )
{
	va_list params; 
	int intpar;    
	va_start(params, cnt); 

	for (int i=0; i&lt;cnt; i++)
	{
		  intpar = va_arg(params, int);
		  cout &lt;&lt; intpar &lt;&lt; endl;      
	}
	cout &lt;&lt; &quot;---&quot; &lt;&lt; endl;
	va_end(params);
}

int main()
{
	varParams(2, 5, 2);
	return 0;
}
</code></pre>
<p>Mein Problem ist jetzt, wenn ich den parameter cnt in der funktion initialisiere,bekomme ich folgende warnung:</p>
<pre><code>Warnung: Zweiter Parameter von »va_start« ist nicht letztgenanntes Argument [standardmäßig aktiviert]
</code></pre>
<p>Beispiel:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;
#include &lt;stdarg.h&gt;

void varParams(int cnt, ... )
{
	va_list params; 
	int intpar;    

	int cnt2 = 2; 

	va_start(params, cnt2); 

	for (int i=0; i&lt;cnt2; i++)
	{
		  intpar = va_arg(params, int);
		  cout &lt;&lt; intpar &lt;&lt; endl;      
	}
	cout &lt;&lt; &quot;---&quot; &lt;&lt; endl;
	va_end(params);
}

int main()
{
	varParams(2, 5, 2);
	return 0;
}
</code></pre>
<p>Meine frage ist:<br />
a) was bedeutet dieses warning genau ?<br />
b) wie kann ich es ausschalten / umgehen ?</p>
<p>Mfg Benny</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2288969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2288969</guid><dc:creator><![CDATA[McMorf]]></dc:creator><pubDate>Sat, 12 Jan 2013 14:29:51 GMT</pubDate></item><item><title><![CDATA[Reply to stdarg.h va_start &amp;lt;-- wieso warning ? on Sat, 12 Jan 2013 14:52:10 GMT]]></title><description><![CDATA[<p>Lies nochmal die Doku zu dem va_start, dann sollte das klarer werden. Es kommt nämlich nicht auf den Wert des zweiten Parameters sondern auf seine Adresse an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2288974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2288974</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 12 Jan 2013 14:52:10 GMT</pubDate></item><item><title><![CDATA[Reply to stdarg.h va_start &amp;lt;-- wieso warning ? on Sat, 12 Jan 2013 15:01:10 GMT]]></title><description><![CDATA[<p>The parameter parmN is the identifier of the last fixed parameter in the variable parameter list in the function definition (the one just before the ', ...'). &lt;--- Hmm... wie macht printf das ?</p>
<p>so : ???</p>
<pre><code>void printf (const char * format, ...)
{
	va_list args;
	va_start (args, format);
	while(*format != 0)
    {
      if(*format++=='%')[bla..]
    }
	va_end (args);
}
</code></pre>
<p>also ist nen beispiel was ich gefunden hab... das gleiche hatte ich quasie auch vor nur dachte ich ich müsste erst zählen wie viele parameter übergeben wurden...</p>
<p>Mfg Benny</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2288979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2288979</guid><dc:creator><![CDATA[McMorf]]></dc:creator><pubDate>Sat, 12 Jan 2013 15:01:10 GMT</pubDate></item><item><title><![CDATA[Reply to stdarg.h va_start &amp;lt;-- wieso warning ? on Sat, 12 Jan 2013 15:13:26 GMT]]></title><description><![CDATA[<p>ok, perfekt !</p>
<p>also ich hab vorher schon in die referenz geguckt, aber scheinbar zu schluderig...</p>
<p>Danke für die hilfe !!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2288984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2288984</guid><dc:creator><![CDATA[McMorf]]></dc:creator><pubDate>Sat, 12 Jan 2013 15:13:26 GMT</pubDate></item></channel></rss>