<?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[cmath problem]]></title><description><![CDATA[<p>hallo,</p>
<p>bei einem programm wollte ich die konstante pi einbinden. habe dann herrausgefunden das ich dazu die header &lt;cmath&gt; einbinden muss. ausserdem muss noch folgendes vor &lt;cmath&gt; eingeben werden: #define _USE_MATH_DEFINES</p>
<p>wofür brauch man das #define _USE_MATH_DEFINES?</p>
<p>auf funktionen in &lt;cmath&gt; kann man odch auch ohne #define _USE_MATH_DEFINES zugreifen!</p>
<p>wär cool wenn mir jemand weiterhelfen könnte!</p>
<p>danke!</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286299/cmath-problem</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 23:10:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286299.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 May 2011 11:51:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to cmath problem on Sat, 07 May 2011 11:51:14 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>bei einem programm wollte ich die konstante pi einbinden. habe dann herrausgefunden das ich dazu die header &lt;cmath&gt; einbinden muss. ausserdem muss noch folgendes vor &lt;cmath&gt; eingeben werden: #define _USE_MATH_DEFINES</p>
<p>wofür brauch man das #define _USE_MATH_DEFINES?</p>
<p>auf funktionen in &lt;cmath&gt; kann man odch auch ohne #define _USE_MATH_DEFINES zugreifen!</p>
<p>wär cool wenn mir jemand weiterhelfen könnte!</p>
<p>danke!</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059994</guid><dc:creator><![CDATA[x-rey]]></dc:creator><pubDate>Sat, 07 May 2011 11:51:14 GMT</pubDate></item><item><title><![CDATA[Reply to cmath problem on Sat, 07 May 2011 11:52:00 GMT]]></title><description><![CDATA[<p>Ist der Name des Makros nicht offensichtlich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059996</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 07 May 2011 11:52:00 GMT</pubDate></item><item><title><![CDATA[Reply to cmath problem on Sat, 07 May 2011 11:54:29 GMT]]></title><description><![CDATA[<p>Ich habe das zwar noch nie gesehen oder verwendet aber aus dem Namen bedeutet es folgendes: Benutze die #defines, die im header cmath definiert sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2059997</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2059997</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Sat, 07 May 2011 11:54:29 GMT</pubDate></item><item><title><![CDATA[Reply to cmath problem on Sat, 07 May 2011 12:09:18 GMT]]></title><description><![CDATA[<p>ich weiss wie man makros definiert...aber hier definieren wir ja quasie unser eigenes makro. allerdings sagen wir ja garnicht was es machen soll.</p>
<p>sorry wenn ich so blöd fragen stelle....aber ich habe noch an eingen stellen verständnisproblem. c++ ist doch schon sehr anders wie java.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060003</guid><dc:creator><![CDATA[x-rey]]></dc:creator><pubDate>Sat, 07 May 2011 12:09:18 GMT</pubDate></item><item><title><![CDATA[Reply to cmath problem on Sat, 07 May 2011 12:22:57 GMT]]></title><description><![CDATA[<p>x-rey schrieb:</p>
<blockquote>
<p>allerdings sagen wir ja garnicht was es machen soll.</p>
</blockquote>
<p>Nichts soll es machen. Es soll einfach nur <em>sein</em>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060011</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060011</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Sat, 07 May 2011 12:22:57 GMT</pubDate></item><item><title><![CDATA[Reply to cmath problem on Sat, 07 May 2011 12:26:27 GMT]]></title><description><![CDATA[<p>Es geht dabei um eine Reihe von Makros, die im C++-Standard nicht definiert sind, sondern aus anderen, ergänzenden Spezifikationen stammen. M_PI konkret stammt aus BSD.</p>
<p>Der Hintergrund für _USE_MATH_DEFINES und ähnliche Schalter ist, dass der C++-Standard neben den Bezeichnern der Standardbibliothek und Schlüsselworten nur solche Bezeichner explizit für die Implementation reserviert, die mit einem Unterstrich gefolgt von einem Großbuchstaben beginnen oder zwei Unterstriche direkt hintereinander enthalten (und im globalen Namensraum zusätzlich alle anderen, die mit einem Unterstrich beginnen). Man kann das so auslegen, dass die Implementation andere Bezeichner in Standardheadern nicht belegen darf, obwohl diese Interpretation meines Wissens nur von Microsoft tatsächlich gefahren und ich mir nicht sicher bin, wie konsequent das da durchgehalten wird. Streng nach Standard wäre etwa</p>
<pre><code class="language-cpp">#include &lt;cmath&gt;

int main() {
  double M_PI = 3.14159265358979;
}
</code></pre>
<p>gültiger Code. Wenn &lt;cmath&gt; aber ungefragt M_PI definiert, kommt das beim Compiler (ungefähr) als</p>
<pre><code class="language-cpp">*Inhalt von &lt;cmath&gt; hier*

int main() {
  double 3.14159265358979 = 3.14159265358979;
}
</code></pre>
<p>an, was natürlich einen Compilerfehler provoziert.</p>
<p>Im Interesse portabler Programmierung bietet sich übrigens an, _USE_MATH_DEFINES in den Projekteinstellungen und nicht im Code direkt zu verdrahten, da andere Plattformen dieses Makro nicht kennen oder gar (auch wenn das unwahrscheinlich ist) für andere Zwecke benutzen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060013</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sat, 07 May 2011 12:26:27 GMT</pubDate></item></channel></rss>