<?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[Stilfrage: Globale Konstanten]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe eine Frage zur Verwendung von globalen Konstanten, z.B. verwende ich eine Headerdatei mit folgenden Konstanten:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#ifndef BASEUNITS_H
#define BASEUNITS_H
//---------------------------------------------------------------------------

const int i_1KB                   = 1000;             // KiloBytes KB = 10^3
const int i_1MB                   = 1000000;          // MegaBytes MB = 10^6
const int i_1GB                   = 1000000000;       // GigaBytes GB = 10^9
const __int64 i_1TB               = 1000000000000i64; // TeraBytes TB = 10^12

const double d_1KB                = 1000.0;
const double d_1MB                = 1000000.0;
const double d_1GB                = 1000000000.0;
const double d_1TB                = 1000000000000.0;

const int i_1KiB                  = 1024;              // KibiBytes KiB = 2^10
const int i_1MiB                  = 1048576;           // MebiBytes MiB = 2^20
const int i_1GiB                  = 1073741824;        // GibiBytes GiB = 2^30
const __int64 i_1TiB              = 1099511627776i64;  // TebiBytes TiB = 2^40

const double d_1KiB               = 1024.0;
const double d_1MiB               = 1048576.0;
const double d_1GiB               = 1073741824.0;
const double d_1TiB               = 1099511627776.0;

//---------------------------------------------------------------------------
#endif
</code></pre>
<p>Aber da bekomme ich oft Warnungen wie:<br />
W8080 'd_1MB' ist deklariert, wird aber nie verwendet</p>
<p>Ist das schlechter Programmierstil und wenn ja, wie werden solche Konstanten sonst deklariert und definiert ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/277203/stilfrage-globale-konstanten</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 01:43:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/277203.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Nov 2010 18:14:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 18:14:11 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich habe eine Frage zur Verwendung von globalen Konstanten, z.B. verwende ich eine Headerdatei mit folgenden Konstanten:</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
#ifndef BASEUNITS_H
#define BASEUNITS_H
//---------------------------------------------------------------------------

const int i_1KB                   = 1000;             // KiloBytes KB = 10^3
const int i_1MB                   = 1000000;          // MegaBytes MB = 10^6
const int i_1GB                   = 1000000000;       // GigaBytes GB = 10^9
const __int64 i_1TB               = 1000000000000i64; // TeraBytes TB = 10^12

const double d_1KB                = 1000.0;
const double d_1MB                = 1000000.0;
const double d_1GB                = 1000000000.0;
const double d_1TB                = 1000000000000.0;

const int i_1KiB                  = 1024;              // KibiBytes KiB = 2^10
const int i_1MiB                  = 1048576;           // MebiBytes MiB = 2^20
const int i_1GiB                  = 1073741824;        // GibiBytes GiB = 2^30
const __int64 i_1TiB              = 1099511627776i64;  // TebiBytes TiB = 2^40

const double d_1KiB               = 1024.0;
const double d_1MiB               = 1048576.0;
const double d_1GiB               = 1073741824.0;
const double d_1TiB               = 1099511627776.0;

//---------------------------------------------------------------------------
#endif
</code></pre>
<p>Aber da bekomme ich oft Warnungen wie:<br />
W8080 'd_1MB' ist deklariert, wird aber nie verwendet</p>
<p>Ist das schlechter Programmierstil und wenn ja, wie werden solche Konstanten sonst deklariert und definiert ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980411</guid><dc:creator><![CDATA[Trial]]></dc:creator><pubDate>Sun, 14 Nov 2010 18:14:11 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 18:24:34 GMT]]></title><description><![CDATA[<blockquote>
<p>Aber da bekomme ich oft Warnungen wie:<br />
W8080 'd_1MB' ist deklariert, wird aber nie verwendet</p>
</blockquote>
<p>Dies kommt nur, wenn du die Variable nirgends im Code verwendet hast... Also warum musst du den Speicher denn dann belegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980415</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980415</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Sun, 14 Nov 2010 18:24:34 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 18:36:13 GMT]]></title><description><![CDATA[<p>Naja, ich möchte die Headerdatei mit allen Konstanten in verschiedene Projekte übernehmen, verwende nicht immer alle Konstanten, möchte aber auch nicht das Rad immer wieder neu erfinden. Deshalb meine Frage. Angepasste Headerdatei für jedes Projekt nur mit den Konstanten die man braucht ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980421</guid><dc:creator><![CDATA[Trial]]></dc:creator><pubDate>Sun, 14 Nov 2010 18:36:13 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 18:58:31 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#ifndef __BASEUNITS_H__
#define __BASEUNITS_H__

#define KB  (          1000  ) /* KiloBytes KB = 10^3  */
#define MB  (       1000000  ) /* MegaBytes MB = 10^6  */
#define GB  (    1000000000  ) /* GigaBytes GB = 10^9  */
#define TB  (1000000000000i64) /* TeraBytes TB = 10^12 */

#define KiB (1 &lt;&lt; 10) /* KibiBytes KiB = 2^10 */
#define MiB (1 &lt;&lt; 20) /* MebiBytes MiB = 2^20 */
#define GiB (1 &lt;&lt; 30) /* GibiBytes GiB = 2^30 */
#define TiB (1 &lt;&lt; 40) /* TebiBytes TiB = 2^40 */

#endif /* __BASEUNITS_H__ */
</code></pre>
<p>defines sind halt schon ganz nett. Es wird garantiert kein zusätzlicher Speicher benutzt und die Nachteile der Makros wird du in diesem Fall vermutlich gar nicht bemerken.<br />
Aus meiner Sicht brauchst du die double-Konstanten gar nicht, weil du ja, wenn nötig, die anderen casten kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980431</guid><dc:creator><![CDATA[definer]]></dc:creator><pubDate>Sun, 14 Nov 2010 18:58:31 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 19:10:38 GMT]]></title><description><![CDATA[<p>Ja, damit hast du bei mir genau ins Schwarze getroffen. Ich hatte das zuerst mit defines, dann nach vielen Hinweisen, defines mit const zu ersetzen, habe ich das geändert. Jetzt bin ich mir nicht mehr sicher was der bessere Programmierstil ist. Mit const ist beim Debuggen immer ganz nett <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="🙂"
    /> , aber ist diese Verwendung in C++ so richtig <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1980436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980436</guid><dc:creator><![CDATA[Trial]]></dc:creator><pubDate>Sun, 14 Nov 2010 19:10:38 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 19:14:18 GMT]]></title><description><![CDATA[<p>Ist beiden grauenvoll, da unnötig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> In der Regel kannst du globale Variablen bei gutem Design vermeiden. Und noch ein Tipp: Versuche Konstanten aus einer Datei auszulesen, dann kannst du diese ändern ohne dein Programm immer neu erstellen zu müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980443</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Sun, 14 Nov 2010 19:14:18 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 19:24:32 GMT]]></title><description><![CDATA[<p>Die Möglichkeit, die Anzahl Bytes eines Kilobytes zu redefinieren, scheint mir ganz ehrlich nicht sonderlich nützlich.</p>
<p>Der Compiler ist hier ziemlich übereifrig; ich benutze die selbe Art von Konstanten andauernd, und bisher hat sich kein Compiler darüber beschwert. Welchen Compiler benutzt du denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980448</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Sun, 14 Nov 2010 19:24:32 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 19:26:29 GMT]]></title><description><![CDATA[<p>HighLigerBiMBam schrieb:</p>
<blockquote>
<p>In der Regel kannst du globale Variablen bei gutem Design vermeiden.</p>
</blockquote>
<p>Wie er sie in diesem speziellen Fall vermeiden könnte ist mir schleierhaft. Er könnte sie von globalen Funktionen im Stile von std::numeric_limits zurückgeben lassen, aber das ist immer noch eine globale variable.</p>
<p>HighLigerBiMBam schrieb:</p>
<blockquote>
<p>Versuche Konstanten aus einer Datei auszulesen, dann kannst du diese ändern ohne dein Programm immer neu erstellen zu müssen.</p>
</blockquote>
<p>Weisst du was: sowas nennt man dann nicht mehr Konstante sondern Variable. Während dem Programmstart den Wert von KB auszulesen finde ich völlig sinnfrei.<br />
Das gesamte Programm startet damit sehr langsam, Compileroptimierungen werden komplett unterdrückt und wenn eine Bibliothek eine Konfigurationsdatei benötigt ist das für mich einer der grössten Designfehler, die man machen kann.</p>
<p>@Trial: Falls es dich stark stört defines einzusetzen kannst du diese eine Warnung explizit ausschalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980450</guid><dc:creator><![CDATA[definer]]></dc:creator><pubDate>Sun, 14 Nov 2010 19:26:29 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 19:28:47 GMT]]></title><description><![CDATA[<p>HighLigerBiMBam schrieb:</p>
<blockquote>
<p>In der Regel kannst du globale Variablen bei gutem Design vermeiden.</p>
</blockquote>
<p>Das sind Konstanten und keine Variablen. Und ich sehe keinen Grund warum man die vermeiden sollte.</p>
<blockquote>
<p>Und noch ein Tipp: Versuche Konstanten aus einer Datei auszulesen, dann kannst du diese ändern ohne dein Programm immer neu erstellen zu müssen.</p>
</blockquote>
<p>Konstanten die sich nie ändern können (wie die Anzahl der Bytes in einem MB) aus einer Datei auslesen, ist also besser, also ein paar Byte für ein paar mickrige Konstanten zu &quot;verschwenden&quot;. Die der Compiler übrigens eh verwerfen wird, da sie nicht gebraucht werden.</p>
<p>@Trial:<br />
Mach deine Konstanten <code>static</code> , dann sollte der Compiler ruhe geben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980451</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 14 Nov 2010 19:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 19:59:18 GMT]]></title><description><![CDATA[<p>Oder wie wär's mit externen Konstanten:</p>
<pre><code class="language-cpp">//Constants.h
extern const int i_1KB;
//...
</code></pre>
<pre><code class="language-cpp">//Constants.cpp
#include &quot;Constants.h&quot;
const int i_1KB = 1000;
//...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1980461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980461</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sun, 14 Nov 2010 19:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 20:09:37 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23670">@wxSkip</a>: Das ist aber schon verarsche oder? Wenn nicht, wozu soll DAS bitte gut sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980466</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Sun, 14 Nov 2010 20:09:37 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Sun, 14 Nov 2010 20:54:50 GMT]]></title><description><![CDATA[<p>Also Konstanten für 1.e9, size_t(1.e9) und size_t(1)&lt;&lt;30 halte ich für unnötig.<br />
Ich würde beim Lesen an d_1GB mehr Zeit verleren, fürchte ich.<br />
Aber wenn es denn unbedingt sein muß, mach halt.<br />
Aber bitte ohne extern, Makros, Laufzeit-Datei und so Sachen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980495</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 14 Nov 2010 20:54:50 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 13:46:48 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23670">@wxSkip</a>: Das ist aber schon verarsche oder? Wenn nicht, wozu soll DAS bitte gut sein?</p>
</blockquote>
<p>Eigentlich zu nichts, außer:<br />
1. Die Konstanten sollten sich mal ändern (was hier höööchstwahrscheinlich nicht vorkommen wird)<br />
2. Der Compiler meckert nicht mehr <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 />
3. Das Programm hat mehr Zeilen und die Statistik schaut besser aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980756</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Mon, 15 Nov 2010 13:46:48 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 14:12:07 GMT]]></title><description><![CDATA[<p>4. Man kann sie nicht mehr als Template-Parameter benutzen.</p>
<p>Punkt 3 lässt mich vermuten, dass du deine Berufswahl nochmal überdenken solltest. Marketing wäre eine Möglichkeit, sofern du ohne Seele auskommst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980770</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 15 Nov 2010 14:12:07 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 14:23:55 GMT]]></title><description><![CDATA[<p>Man kann das ganze auch in ein enum packen. Damit wird dann auch kein Speicher belegt. Nachteil ist, jede Konstante darf nur einmal im enum vorkommen. Du kannst aber beliebig viele enums anlegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980776</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 15 Nov 2010 14:23:55 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 14:38:17 GMT]]></title><description><![CDATA[<p>Nick Unbekannt schrieb:</p>
<blockquote>
<p>Nachteil ist, jede Konstante darf nur einmal im enum vorkommen.</p>
</blockquote>
<p>Laut dem <a href="http://www.open-std.org/jtc1/sc22/open/n2356/dcl.html#dcl.enum" rel="nofollow">C++ Standard</a> ist das erlaubt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980782</guid><dc:creator><![CDATA[Standard Unbekannt]]></dc:creator><pubDate>Mon, 15 Nov 2010 14:38:17 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 15:26:46 GMT]]></title><description><![CDATA[<p>seldon schrieb:</p>
<blockquote>
<p>4. Man kann sie nicht mehr als Template-Parameter benutzen.</p>
<p>Punkt 3 lässt mich vermuten, dass du deine Berufswahl nochmal überdenken solltest. Marketing wäre eine Möglichkeit, sofern du ohne Seele auskommst.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980806</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Mon, 15 Nov 2010 15:26:46 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 18:47:14 GMT]]></title><description><![CDATA[<p>Weshalb <code>enum</code> , wenn man keinen Aufzählungstypen definieren will? Nimm einfach <code>const</code> für Konstanten. Wenn du keinen antiken Compiler hast, benötigen die auch keinen Speicherplatz.</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Mach deine Konstanten <code>static</code> , dann sollte der Compiler ruhe geben.</p>
</blockquote>
<p>Wieso das? An der Linkage ändert es nämlich nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980921</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 15 Nov 2010 18:47:14 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 19:37:19 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Mach deine Konstanten <code>static</code> , dann sollte der Compiler ruhe geben.</p>
</blockquote>
<p>Wieso das? An der Linkage ändert es nämlich nichts.</p>
</blockquote>
<p>Haste auch wieder recht.<br />
Ich hab' die Warning einfach nur abgedreht, DAS wird der Grund sein warum er bei mir nicht meckert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980949</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 15 Nov 2010 19:37:19 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 20:12:55 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Weshalb <code>enum</code> , wenn man keinen Aufzählungstypen definieren will? Nimm einfach <code>const</code> für Konstanten. Wenn du keinen antiken Compiler hast, benötigen die auch keinen Speicherplatz.</p>
</blockquote>
<p>Was auch nur funktioniert, wenn man keine so-Files erstellen will.</p>
<p>Was mir aber noch auffällt und noch gar nicht angesprochen wurde. Wenn ich Konstanten allgemein definiere, dann will ich die unter Umständen mehrmals verwenden und dann würdest du mit dieser const-Variante im Header an die Grenzen stoßen. Da nützen dir dann auch deine inclusion guards nichts mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980973</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 15 Nov 2010 20:12:55 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 20:44:39 GMT]]></title><description><![CDATA[<p>Nick Unbekannt schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Weshalb <code>enum</code> , wenn man keinen Aufzählungstypen definieren will? Nimm einfach <code>const</code> für Konstanten. Wenn du keinen antiken Compiler hast, benötigen die auch keinen Speicherplatz.</p>
</blockquote>
<p>Was auch nur funktioniert, wenn man keine so-Files erstellen will.</p>
<p>Was mir aber noch auffällt und noch gar nicht angesprochen wurde. Wenn ich Konstanten allgemein definiere, dann will ich die unter Umständen mehrmals verwenden und dann würdest du mit dieser const-Variante im Header an die Grenzen stoßen. Da nützen dir dann auch deine inclusion guards nichts mehr.</p>
</blockquote>
<p>Echt? Erzeugen die Speicher?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980996</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 15 Nov 2010 20:44:39 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 21:17:21 GMT]]></title><description><![CDATA[<p>so-Files?</p>
<p>Unter Linux werden alle Symbole exportiert. Man kann über Attribute im GCC die Sichtbarkeit einschränken, dass ist dann aber nicht mehr portabel. Und funktioniert auch nur in jüngeren Versionen, soweit ich mich entsinne.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1981008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1981008</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 15 Nov 2010 21:17:21 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 21:20:49 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Erzeugen die Speicher?</p>
</blockquote>
<p>Schön wärs... Leider verbrauchen sie Speicher.<br />
Zum Glück ist das jedoch nur der Fall, wenn man irgendwo aus Unachtsamkeit ein &amp; vor die Konstante schreibt.</p>
<p>Nick Unbekannt schrieb:</p>
<blockquote>
<p>Unter Linux werden alle Symbole exportiert.</p>
</blockquote>
<p>Bei mir nicht. Kontrolliert mit</p>
<pre><code>$ g++ -c --optimize a.cc -o a.o
$ ld -G a.o -o liba.so
$ nm liba.so
000011c8 a _DYNAMIC
00001240 a _GLOBAL_OFFSET_TABLE_
00000188 T _Z10do_nothingv
0000124c A __bss_start
         U __gxx_personality_v0
0000124c A _edata
0000124c A _end
$ rm a.cc a.o liba.so
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1981012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1981012</guid><dc:creator><![CDATA[vollbart]]></dc:creator><pubDate>Mon, 15 Nov 2010 21:20:49 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 21:37:07 GMT]]></title><description><![CDATA[<p>Woher weiß dein Linker, welche Symbole nicht benötigt werden?</p>
<p>Das könnte sehr interessant dazu sein: <a href="http://gcc.gnu.org/wiki/Visibility" rel="nofollow">http://gcc.gnu.org/wiki/Visibility</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1981018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1981018</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 15 Nov 2010 21:37:07 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 21:40:45 GMT]]></title><description><![CDATA[<p>Es ist nicht der Linker, sondern der Compiler. Ohne --optimize sind alle Konstanten vorhanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1981022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1981022</guid><dc:creator><![CDATA[vollbart]]></dc:creator><pubDate>Mon, 15 Nov 2010 21:40:45 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage: Globale Konstanten on Mon, 15 Nov 2010 21:50:44 GMT]]></title><description><![CDATA[<p>Das funktioniert aber nur, wenn du irgendwie das Symbol aus der globalen Sichtbarkeit raus nimmst. Der Compiler kann keine Symbole weg optimieren, die global sichtbar sind. Ist ja auch logisch, er sieht nur das eine Objektfile.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1981027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1981027</guid><dc:creator><![CDATA[Nick Unbekannt]]></dc:creator><pubDate>Mon, 15 Nov 2010 21:50:44 GMT</pubDate></item></channel></rss>