<?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[Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot;]]></title><description><![CDATA[<p>Hi Community,</p>
<p>Ich möchte auf dem Bildschirm folgenden Text ausgeben, welcher selbst Anführungszeichen enthält:</p>
<pre><code>+12V &quot;ON&quot;
</code></pre>
<p>Die folgende Codezeile wird als fehlerhaft vom Compiler abgelehnt:</p>
<pre><code class="language-cpp">VERIFY( SetDlgItemText( hwnd_dialog, IDC_RTS, TEXT( &quot;+12V \&quot;ON\&quot;&quot; ) ) );
</code></pre>
<p>das gleiche passiert auch, wenn ich eine ganz normale CRT-Funktion verwende, z.B. (sinngemäß umgebaut)</p>
<pre><code class="language-cpp">VERIFY( strcpy( csz_string, &quot;+12V \&quot;ON\&quot;&quot; ) != NULL );
</code></pre>
<p>Das Makro <em>VERIFY()</em> ist eine #define-Anweisung welche hier z.B. in <em>assert()</em> umgewandelt wird.</p>
<p>In beiden Fällen erhalte ich folgende Fehlermeldung:</p>
<pre><code>Compiler Error C2017 -&gt; &quot;illegal escape sequence&quot; bzw. &quot;Ungueltige ESCAPE-Folge&quot;
</code></pre>
<p>Beschreibung siehe: <a href="http://msdn.microsoft.com/en-us/library/29t70y03(VS.80).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/29t70y03(VS.80).aspx</a></p>
<p>Dort ist genau der zweite Beispiel beschrieben, was auf mein Problem zutrifft.</p>
<p>Nun, nirgendwo steht geschrieben, wie ich das Problem lösen kann <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>Mein erster Gedanke war, den String in Einzelteilen zu zerlegen und mittels <em>strcpy()</em> bzw. <em>strcat()</em> in einer Variable wieder zusammenzubauen....<br />
Aber das kann doch nicht die elegante Lösung sein, oder?<br />
Vor allem, wenn ich mit mehrsprachigen Ressourcen-Texte arbeite, ist das eine Zumutung!</p>
<p>Habt Ihr vielleicht andere Tipps für mich parat?<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/251106/compiler-error-c2017-quot-illegal-escape-sequence-quot</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 13:31:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/251106.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 29 Sep 2009 12:34:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Tue, 29 Sep 2009 12:34:03 GMT]]></title><description><![CDATA[<p>Hi Community,</p>
<p>Ich möchte auf dem Bildschirm folgenden Text ausgeben, welcher selbst Anführungszeichen enthält:</p>
<pre><code>+12V &quot;ON&quot;
</code></pre>
<p>Die folgende Codezeile wird als fehlerhaft vom Compiler abgelehnt:</p>
<pre><code class="language-cpp">VERIFY( SetDlgItemText( hwnd_dialog, IDC_RTS, TEXT( &quot;+12V \&quot;ON\&quot;&quot; ) ) );
</code></pre>
<p>das gleiche passiert auch, wenn ich eine ganz normale CRT-Funktion verwende, z.B. (sinngemäß umgebaut)</p>
<pre><code class="language-cpp">VERIFY( strcpy( csz_string, &quot;+12V \&quot;ON\&quot;&quot; ) != NULL );
</code></pre>
<p>Das Makro <em>VERIFY()</em> ist eine #define-Anweisung welche hier z.B. in <em>assert()</em> umgewandelt wird.</p>
<p>In beiden Fällen erhalte ich folgende Fehlermeldung:</p>
<pre><code>Compiler Error C2017 -&gt; &quot;illegal escape sequence&quot; bzw. &quot;Ungueltige ESCAPE-Folge&quot;
</code></pre>
<p>Beschreibung siehe: <a href="http://msdn.microsoft.com/en-us/library/29t70y03(VS.80).aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/29t70y03(VS.80).aspx</a></p>
<p>Dort ist genau der zweite Beispiel beschrieben, was auf mein Problem zutrifft.</p>
<p>Nun, nirgendwo steht geschrieben, wie ich das Problem lösen kann <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>Mein erster Gedanke war, den String in Einzelteilen zu zerlegen und mittels <em>strcpy()</em> bzw. <em>strcat()</em> in einer Variable wieder zusammenzubauen....<br />
Aber das kann doch nicht die elegante Lösung sein, oder?<br />
Vor allem, wenn ich mit mehrsprachigen Ressourcen-Texte arbeite, ist das eine Zumutung!</p>
<p>Habt Ihr vielleicht andere Tipps für mich parat?<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785902</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Tue, 29 Sep 2009 12:34:03 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Tue, 29 Sep 2009 12:44:01 GMT]]></title><description><![CDATA[<p>Hi ,</p>
<p>ich tippe darauf, dass es an der Defintion vom VERIFY-Makro liegt. Das solltest Du Dir mal ansehen.<br />
Ein entsprechender Hinweis (nicht auf VERIFY aber auf Probleme mit Makros) findet sich auch auf der MSDN-Seite, die Du verlinkt hast.</p>
<p>und wieder mal: Makro sucks. <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="😉"
    /><br />
(Ich weiß: Kannst Du nichts für)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785907</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 29 Sep 2009 12:44:01 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Tue, 29 Sep 2009 13:09:48 GMT]]></title><description><![CDATA[<p>Hi Simon2,</p>
<p>also, meine Makrodefinition für <em>VERIFY()</em> sieht wie folgt aus:</p>
<pre><code class="language-cpp">//Die Funktion in VERIFY() wird sowohl in der Debug- als auch in der Release-Version aufgerufen,
//  aber der Rückgabewert wird nur der Debug-Version auf korrekten (erwarteten) Wert != 0 hin überprüft.
//  D.h. ein Rückgabewert gleich 0 (d.i. fehlerhafter Zustand) würde eine Assertion auslösen!
#ifdef  _DEBUG
#define VERIFY(x) (assert((x)!=0))
#else
#define VERIFY(x) ((void)(x))
#endif // _DEBUG
</code></pre>
<p>Ich denke, das sieht gar nicht verdächtig aus, oder doch?</p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>Ein entsprechender Hinweis (nicht auf VERIFY aber auf Probleme mit Makros) findet sich auch auf der MSDN-Seite, die Du verlinkt hast.</p>
</blockquote>
<p>Welcher Hinweis? Das mit dem Stringize Operator? Ich sehe nur daß diese dort aufgeführten Beispiele zur C2017 führen. Aber leider nicht wie man's lösen kann...<br />
Oder übersehe ich da was?</p>
<p>Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785924</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Tue, 29 Sep 2009 13:09:48 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Tue, 29 Sep 2009 13:46:41 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich würde an Deiner Stelle mal das Makro &quot;per Hand ersetzen&quot;. Dann sieht man am ehesten, wo's kracht.<br />
BTW: könnte es sein, dass in Deiner Implementierung assert() selbst auch wieder ein Makro ist?</p>
<p>Mmacher schrieb:</p>
<blockquote>
<p>...<br />
Welcher Hinweis? Das mit dem Stringize Operator? Ich sehe nur daß diese dort aufgeführten Beispiele zur C2017 führen. Aber leider nicht wie man's lösen kann...<br />
Oder übersehe ich da was?</p>
<p>Martin</p>
</blockquote>
<p>Nunja, es könnte sein, dass das eine Schwäche der konkreten Implementierung des VERIFY-Makros ist (auch, wenn ich sie derzeit noch nicht sehe). Dann kannst Du evtl.<br />
* entweder das Makro anpassen<br />
* oder den Aufruf geeignet modifizieren (da können sonst überflüssige Klammern Wunder wirken)<br />
* oder das Makro für Deinen Fall passend ersetzen.<br />
Sorry - so auf die Schnelle sehe ich da auch nichts...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785960</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 29 Sep 2009 13:46:41 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Tue, 29 Sep 2009 14:28:43 GMT]]></title><description><![CDATA[<p>Danke für Deine Tipps,<br />
ich werde mal an den Makros herumexperimentieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1785991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1785991</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Tue, 29 Sep 2009 14:28:43 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Tue, 29 Sep 2009 16:39:25 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>BTW: könnte es sein, dass in Deiner Implementierung assert() selbst auch wieder ein Makro ist?</p>
</blockquote>
<p><code>assert</code> ist ein Makro, um zum Beispiel auch den übergebenen Ausdruck oder Zeilennummer/Datei auszugeben.</p>
<p>17.4.1.2/5 schrieb:</p>
<blockquote>
<p>Names which are defined as macros in C shall be defined as macros in the C++ Standard Library, even if C<br />
grants license for implementation as functions. [Note: the names defined as macros in C include the following:<br />
assert, errno, offsetof, setjmp, va_arg, va_end, and va_start. —end note]</p>
</blockquote>
<p>Mmacher, eventuell unterstützt deine IDE einen Präprozessor-Output, dann kannst du selbst nachvollziehen, was nach dem Präprozessorlauf falsch ist. Bei MSVC++ kann man in den Projektoptionen bei der Kategorie &quot;C++&quot; zur Befehlszeile &quot;/P&quot; hinzufügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1786102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786102</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 29 Sep 2009 16:39:25 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Thu, 01 Oct 2009 07:33:16 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>...ist ein Makro, um zum Beispiel auch den übergebenen Ausdruck oder Zeilennummer/Datei auszugeben....</p>
</blockquote>
<p>Ah! Vielen Dank! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1786753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786753</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 01 Oct 2009 07:33:16 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Thu, 01 Oct 2009 08:56:16 GMT]]></title><description><![CDATA[<p>Ja, <em>assert()</em> selbst ist wieder ein Makro, so wie Nexus beschrieben hat.</p>
<p>Hab nun mal nach Vorschlag von Nexus die Option /P angewendet.<br />
Und was passiert?<br />
Die Fehlermeldung verschwindet... Doch warum eigentlich? <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>Aus der Original-Zeile in der Datei &quot;ProcDlgSetupComPort_sub.cpp&quot;:</p>
<pre><code class="language-cpp">VERIFY( SetDlgItemText( hwnd_dialog, IDC_TXD, TEXT( &quot;+12V \&quot;0\&quot; \&quot;SPACE\&quot;&quot; ) ) );
</code></pre>
<p>Macht der Präprozessoer daraus die folgende Zeile (mit der Option /P aktiviert) in der Output-Datei &quot;ProcDlgSetupComPort_sub.i&quot;:</p>
<pre><code class="language-cpp">((void)( ((SetDlgItemTextA( hwnd_dialog, 1041, &quot;+12V \&quot;0\&quot; \&quot;SPACE\&quot;&quot; ))!=0) || (_assert(&quot;(SetDlgItemTextA( hwnd_dialog, 1041, \&quot;+12V \\\&quot;0\\&quot; \\\&quot;SPACE\\&quot;\&quot; ))!=0&quot;, &quot;c:\\projekte\\pccontrol\\procdlgsetupcomport_sub.cpp&quot;, 137), 0) ));
</code></pre>
<p>(sorry, ich weiß, ist lang)</p>
<p>Entferne ich die Option /P, so erhalte ich wieder die besagte Fehlermeldung.<br />
Dummerweise habe ich mit dieser Einstellung natürlich keine Präprozessor-Ausgabe mehr, um nachzusehen wo oder wie es kracht ....</p>
<p>Mit /P habe ich zwar das Symptom unterdrückt, NUR: Was war die eigentliche Ursache für die Fehlermeldung???</p>
<p>Allerdings tu ich ungern die Option /P belassen, da dadurch auch die Compilierzeit ins unerträgliche steigt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Z.B. aus einer 20kByte Quelltextdatei werden 3.5 MByte Präprozessor-Output, zumal ich ein großes Projekt habe (Anzahl der cpp-Dateien im dreistelligen Bereich).</p>
<p>Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1786784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786784</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Thu, 01 Oct 2009 08:56:16 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Thu, 01 Oct 2009 09:18:16 GMT]]></title><description><![CDATA[<p>Mmacher schrieb:</p>
<blockquote>
<p>...<br />
Die Fehlermeldung verschwindet... Doch warum eigentlich?..</p>
</blockquote>
<p>Ich denke, dass die Fehlermeldung vom Compiler kommt, der aber mit der Option /P gar nicht aktiv wird, sondern nur der Präprozessor.<br />
Deswegen &quot;behebt&quot; diese Option auch gar nicht Dein Problem, sondern hilft nur bei der Lösung: assert setzt den übergebenen Ausdruck selbst nochmal &quot;in Gänsefüßchen&quot; und ersetzt dabei die \&quot; nicht richtig:</p>
<pre><code class="language-cpp">_assert(&quot;(SetDlgItemTextA( hwnd_dialog, 1041, \&quot;+12V \\\&quot;0\\&quot; \\\&quot;SPACE\\&quot;\&quot; ))!=0&quot;
</code></pre>
<p>da steht zweimal \&quot;, wo \\&quot; stehen sollte...<br />
(kann man bei genauer &quot;Farbbeobachtung&quot; auch sehen <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>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1786797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786797</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 01 Oct 2009 09:18:16 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Thu, 01 Oct 2009 11:41:48 GMT]]></title><description><![CDATA[<p>mal ne blöde Frage: wieso nimmst du für VERIFY ein Makro? Vorausgesetzt, dass assert wie üblich eh nur im Debugmodus etwas macht, sollte doch auch folgendes tun:</p>
<pre><code class="language-cpp">template &lt;class T&gt;
void VERIFY(T t)
{
  assert(t != 0);
  (void)t; //Compilerwarnungen wegen unbenutzen Parametern im releasemodus vermeiden
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1786856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786856</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 01 Oct 2009 11:41:48 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Thu, 01 Oct 2009 12:04:07 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@pumuckl</a><br />
das Problem bei der Funktion ist einfach, dass du weniger Informationen über den Fehler bekommst. Das Macro weiß ja wo es ist (__LINE__, __FILE__, __func__) und es kennt den exakten Parameter (strcpy(...)). Bei einer Funktion bekommst du dann ja immer die Meldung, dass das assert &quot;1 != 0&quot; in der Funktion VERIFY Zeile x fehlgeschlagen ist. =&gt; nicht so hilfreich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1786863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786863</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Thu, 01 Oct 2009 12:04:07 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Thu, 01 Oct 2009 12:28:30 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13624">@Simon2</a>:<br />
BINGO! Das ist die Ursache! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Eigentlich hätte ich da selber draufkommen müssen, daß der Stringaufbau nach der Makro-Expansion nicht mehr mit dem ursprünglichen String übereinstimmt.</p>
<p>Dann werde ich mir das <em>assert()</em> Makro mal näher in Augenschein nehmen.<br />
Zur Not dieses ggf. durch ein modifiziertes ersetzen. Dazu werde ich wohl erst am Wochenende dazu kommen.</p>
<p>Die hierbei gewonnenen Erkenntnisse schreibe ich natürlich auch hier hinein.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@pumuckl</a>:<br />
Dein Vorschlag ist so für mich unbrauchbar (rüdiger hat schon geantwortet)</p>
<p>Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1786876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786876</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Thu, 01 Oct 2009 12:28:30 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Thu, 01 Oct 2009 15:54:09 GMT]]></title><description><![CDATA[<p>Wieso eigentlich auf Ungleichheit mit 0 prüfen? Das ist unnötig und verkompliziert nur den eigentlichen Assert-Ausdruck. Wenn du nicht gleich eine Zahl prüfst, finde ich das <code>!= 0</code> eher verwirrend.</p>
<p>Ich meine, sowas spricht doch für sich:</p>
<pre><code class="language-cpp">assert(IsEverythingOkay());
</code></pre>
<p>Aber bei Folgendem ist zumindest mir nicht auf Anhieb klar, was gewollt ist, und ich frage mich, was die Ungleichung soll.</p>
<pre><code class="language-cpp">assert(IsEverythingOkay() != 0);
</code></pre>
<p>pumuckl, Makros können zwar hässlich sein, aber nicht immer haben Funktionen Vorteile. <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/1786979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1786979</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 01 Oct 2009 15:54:09 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Fri, 02 Oct 2009 13:29:57 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@nexus</a>:<br />
Hmmmm, ja weißt Du, das ist bei uns jahrelange Praxisgewohnheit.</p>
<p>Wir haben früher mit Assembler diverse Microcontroller aus Performance-Gründen möglichst einen Vergleich auf Null oder eben auf ungleich Null angestrebt.<br />
Bei der Umstellung auf Hochsprache wie C haben wir auch diese Gewohnheit (und wegen Algorithmus-Kompatibilität) beibehalten.<br />
Und irgendwie bleibt diese auch hier mit Visual C++ hartnäckig bestehen...<br />
Hast recht, notwendig ist das natürlich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1787352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1787352</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Fri, 02 Oct 2009 13:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler Error C2017 &amp;quot;illegal escape sequence&amp;quot; on Fri, 02 Oct 2009 13:43:46 GMT]]></title><description><![CDATA[<p>Nun zum eigentlichen Problem:</p>
<p>Im <em>assert()</em>-Makro ist ein Stringize-Operator # enthalten.<br />
Das habe ich bisher nicht gewußt.</p>
<p>Dieser arbeitet offensichtlich nicht korrekt, wie man am expandierten Makro-Ausdruck des Präprozessors erkennen kann.<br />
Deshalb ist die Beschreibung nach MSDN <a href="http://msdn.microsoft.com/en-us/library/29t70y03.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/29t70y03.aspx</a> korrekt und zu 100%ig auf das <em>assert()</em>-Makro anwendbar.</p>
<p>Ein direkter Lösungsweg dieses Problems gibt es anscheinend nicht.<br />
Den Stringize-Operator # entfernen ist auch nicht sinnvoll, da dieser doch wesentlicher Bestandteil des <em>assert()</em>-Makros ist.</p>
<p>In meinem Fall habe ich es anders gelöst:<br />
Statt direkt Texte (mit den Escape-Sequenzen) in der Funktion zu verwenden, verwende ich einen Pointer auf den String.<br />
Und die verschiedenen Strings habe ich in einem Array zusammengefaßt.<br />
Ist für zukünftige Übersetzungen in andere Fremdsprachen auch so pflegeleichter zu handhaben.</p>
<p>Danke an allen die mir bei dem Problem geholfen hafen!<br />
Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1787356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1787356</guid><dc:creator><![CDATA[Mmacher]]></dc:creator><pubDate>Fri, 02 Oct 2009 13:43:46 GMT</pubDate></item></channel></rss>