<?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[If-Anweisung: auf bekannten&#x2F;zulässigen Wert überprüfen]]></title><description><![CDATA[<p>Ein herzliches Hallo in die Runde! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>Ich muss eine Variable, die die Prozess-Priorität eines zu startenden Prozesses bestimmt ,überprüfen und mir ist leider kein anderer Weg eingefallen als dieser hier:</p>
<pre><code class="language-cpp">DWORD prirorityClass; // In winbase.h definierte Prioritäts-Klasse

        // Hier wird irgendwo priorityClass irgendwie initialisiert...

        // Überprüfe auf zulässige/bekannte Prioritäts-Klasse:

	if (priorityClass != ABOVE_NORMAL_PRIORITY_CLASS &amp;&amp;
		priorityClass != BELOW_NORMAL_PRIORITY_CLASS &amp;&amp;
		priorityClass != HIGH_PRIORITY_CLASS &amp;&amp;
		priorityClass != IDLE_PRIORITY_CLASS &amp;&amp;
		priorityClass != NORMAL_PRIORITY_CLASS &amp;&amp;
		priorityClass != REALTIME_PRIORITY_CLASS){

		return false; // unbekannte Prioritäts-Klasse
	}
</code></pre>
<p>Kann man diese Sicherheitsabfrage auch irgendwie anderes programmieren?</p>
<p>priorityCLass als enum zu definieren geht leider nicht, da die Variable schon definierte (winbase.h) Werte annehmen muss.</p>
<p>Gibt es in c++ eine If-Anweisung, die Abfragt, ob eine Variable einen von einer bestimmten Menge an Werte besitzt?</p>
<p>Nachtrag:</p>
<p>Diese Variante ist mir noch eingefallen:</p>
<pre><code class="language-cpp">switch(priorityClass){

		case ABOVE_NORMAL_PRIORITY_CLASS:
		case BELOW_NORMAL_PRIORITY_CLASS:
		case HIGH_PRIORITY_CLASS:
		case IDLE_PRIORITY_CLASS:
		case NORMAL_PRIORITY_CLASS:
		case REALTIME_PRIORITY_CLASS: break;

		default: return false; 
	}
</code></pre>
<p>Habt Ihr eine bessere Idee? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Vielen Dank im Voraus!</p>
<p>Gruß Roger</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/229841/if-anweisung-auf-bekannten-zulässigen-wert-überprüfen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 18:13:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/229841.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Dec 2008 12:09:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to If-Anweisung: auf bekannten&#x2F;zulässigen Wert überprüfen on Wed, 17 Dec 2008 12:09:58 GMT]]></title><description><![CDATA[<p>Ein herzliches Hallo in die Runde! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>Ich muss eine Variable, die die Prozess-Priorität eines zu startenden Prozesses bestimmt ,überprüfen und mir ist leider kein anderer Weg eingefallen als dieser hier:</p>
<pre><code class="language-cpp">DWORD prirorityClass; // In winbase.h definierte Prioritäts-Klasse

        // Hier wird irgendwo priorityClass irgendwie initialisiert...

        // Überprüfe auf zulässige/bekannte Prioritäts-Klasse:

	if (priorityClass != ABOVE_NORMAL_PRIORITY_CLASS &amp;&amp;
		priorityClass != BELOW_NORMAL_PRIORITY_CLASS &amp;&amp;
		priorityClass != HIGH_PRIORITY_CLASS &amp;&amp;
		priorityClass != IDLE_PRIORITY_CLASS &amp;&amp;
		priorityClass != NORMAL_PRIORITY_CLASS &amp;&amp;
		priorityClass != REALTIME_PRIORITY_CLASS){

		return false; // unbekannte Prioritäts-Klasse
	}
</code></pre>
<p>Kann man diese Sicherheitsabfrage auch irgendwie anderes programmieren?</p>
<p>priorityCLass als enum zu definieren geht leider nicht, da die Variable schon definierte (winbase.h) Werte annehmen muss.</p>
<p>Gibt es in c++ eine If-Anweisung, die Abfragt, ob eine Variable einen von einer bestimmten Menge an Werte besitzt?</p>
<p>Nachtrag:</p>
<p>Diese Variante ist mir noch eingefallen:</p>
<pre><code class="language-cpp">switch(priorityClass){

		case ABOVE_NORMAL_PRIORITY_CLASS:
		case BELOW_NORMAL_PRIORITY_CLASS:
		case HIGH_PRIORITY_CLASS:
		case IDLE_PRIORITY_CLASS:
		case NORMAL_PRIORITY_CLASS:
		case REALTIME_PRIORITY_CLASS: break;

		default: return false; 
	}
</code></pre>
<p>Habt Ihr eine bessere Idee? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Vielen Dank im Voraus!</p>
<p>Gruß Roger</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631773</guid><dc:creator><![CDATA[Roger Wilco]]></dc:creator><pubDate>Wed, 17 Dec 2008 12:09:58 GMT</pubDate></item><item><title><![CDATA[Reply to If-Anweisung: auf bekannten&#x2F;zulässigen Wert überprüfen on Wed, 17 Dec 2008 12:15:42 GMT]]></title><description><![CDATA[<p>Wenn sich die Werte garantiert nie verändern werden, finde ich, kann man das gut so lassen. Anderseits kannst du eine Funktion draus machen, welche innerhalb in einer Schleife alle Werte überprüft und dann true/false zurückgibt.</p>
<p>Pseudocode:</p>
<pre><code class="language-cpp">bool check ( value )
{
 for ( jedes element in einer liste)
  if ( value == element )
    return true;

return false; 
}
</code></pre>
<p>Sofern die Werte, wie ABOVE_NORMAL_PRIORITY_CLASS usw. schön nacheinander sind, geht das relativ einfach, da du dann diese Werte als Index benutzen kannst, anderseits musst du zuerst ein Array/Liste draus machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631779</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631779</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 17 Dec 2008 12:15:42 GMT</pubDate></item><item><title><![CDATA[Reply to If-Anweisung: auf bekannten&#x2F;zulässigen Wert überprüfen on Wed, 17 Dec 2008 12:34:16 GMT]]></title><description><![CDATA[<p>Hallo drakon,</p>
<p>danke für Deine Antwort.</p>
<p>Extra Funktion hatte ich auch kurz überlegt, aber da ich das nur an einer Stelle brauche, werde ich es wohl so stehen lassen.</p>
<p>Auszug aus der winbase.h:</p>
<pre><code class="language-cpp">#define NORMAL_PRIORITY_CLASS             0x00000020
#define IDLE_PRIORITY_CLASS               0x00000040
#define HIGH_PRIORITY_CLASS               0x00000080
#define REALTIME_PRIORITY_CLASS           0x00000100
#define BELOW_NORMAL_PRIORITY_CLASS       0x00004000
#define ABOVE_NORMAL_PRIORITY_CLASS       0x0000800
</code></pre>
<p>0</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631793</guid><dc:creator><![CDATA[Roger Wilco]]></dc:creator><pubDate>Wed, 17 Dec 2008 12:34:16 GMT</pubDate></item><item><title><![CDATA[Reply to If-Anweisung: auf bekannten&#x2F;zulässigen Wert überprüfen on Wed, 17 Dec 2008 12:51:59 GMT]]></title><description><![CDATA[<p>Weil die Werte durch eizelne Bits dargetellt werden kannst Du sie binär &quot;verodern&quot; und dann mit dem vergleichs Wert binär &quot;verunden&quot; (ungetestet):</p>
<pre><code class="language-cpp">if (!(priorityClass &amp;(
         ABOVE_NORMAL_PRIORITY_CLASS |
         BELOW_NORMAL_PRIORITY_CLASS |
         HIGH_PRIORITY_CLASS         |
         IDLE_PRIORITY_CLASS         | 
         NORMAL_PRIORITY_CLASS       | 
         REALTIME_PRIORITY_CLASS
    )))
{ 
    return false; // unbekannte Prioritäts-Klasse 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1631806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631806</guid><dc:creator><![CDATA[Drehleiter]]></dc:creator><pubDate>Wed, 17 Dec 2008 12:51:59 GMT</pubDate></item><item><title><![CDATA[Reply to If-Anweisung: auf bekannten&#x2F;zulässigen Wert überprüfen on Wed, 17 Dec 2008 13:41:44 GMT]]></title><description><![CDATA[<p>Hallo Drehleiter!</p>
<p>Ja, das ist auch eine elegante Möglichkeit. Da aber die switch-Variante leichter zu lesen ist, werde ich die nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631838</guid><dc:creator><![CDATA[Roger Wilco]]></dc:creator><pubDate>Wed, 17 Dec 2008 13:41:44 GMT</pubDate></item><item><title><![CDATA[Reply to If-Anweisung: auf bekannten&#x2F;zulässigen Wert überprüfen on Wed, 17 Dec 2008 13:51:22 GMT]]></title><description><![CDATA[<p>Roger Wilco schrieb:</p>
<blockquote>
<p>Ja, das ist auch eine elegante Möglichkeit. Da aber die switch-Variante leichter zu lesen ist, werde ich die nehmen.</p>
</blockquote>
<p>Ich kenne diese Angaben zwar nicht (Arbeite nicht mit der WindowsAPI wenn es sich vermeiden lässt), aber was mich verwundert ist die Binärcodierung. Sowas verwendet man eigentlich nur, wenn mehrere Angaben parallel gesetzt sein können (und dann hilft nur binäre Maskierung beim Vergleich).</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631845</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 17 Dec 2008 13:51:22 GMT</pubDate></item><item><title><![CDATA[Reply to If-Anweisung: auf bekannten&#x2F;zulässigen Wert überprüfen on Wed, 17 Dec 2008 14:16:12 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>..., aber was mich verwundert ist die Binärcodierung. Sowas verwendet man eigentlich nur, wenn mehrere Angaben parallel gesetzt sein können (und dann hilft nur binäre Maskierung beim Vergleich).</p>
<p>cu André</p>
</blockquote>
<p>Hi André,</p>
<p>Du hast Recht, es können mehrere Flags parallel gesetzt werden - ich nutze hier aber nur die Flags der Prioritätsklasse und da kann nur eine festgelegt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1631861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1631861</guid><dc:creator><![CDATA[Roger Wilco]]></dc:creator><pubDate>Wed, 17 Dec 2008 14:16:12 GMT</pubDate></item></channel></rss>