doppelte underscores in bezeichnern?
-
hab ich gerade da gelesen: http://www.c-plusplus.net/forum/viewtopic-var-p-is-1794580.html#1794580
würdet ihr sowas machen?
-
Ich bin nie auch nur auf die Idee gekommen.
-
µngbd schrieb:
Ich bin nie auch nur auf die Idee gekommen.
ich vielleicht vor langer zeit mal, hab's aber nie verwendet. irgendwie stellt sich bei mir bei doppelten underscores ein leichtes unbehagen ein. aber warum kann ich auch nicht sagen. jeder hat ja so seine eigenen ästhetischen vorstellungen, wie quelltext aussehen sollte.
-
Da würd ich mich viel zu schwer tun, die beim drüberlesen von einzelnen underscores zu unterscheiden...
-
Tja Fricky, es wird Zeit für eine Stunde auf dem roten Sofa. Die doppelten Unterstriche sind nämlich in C++ illegal.
-
Bashar schrieb:
Die doppelten Unterstriche sind nämlich in C++ illegal.
hier ist zwar das C-forum, aber aus welchem grund sind die in C++ denn nicht erlaubt?
-
;fricky schrieb:
Bashar schrieb:
Die doppelten Unterstriche sind nämlich in C++ illegal.
hier ist zwar das C-forum, aber aus welchem grund sind die in C++ denn nicht erlaubt?
Reserviert für die Plattform.
um einen namensraum zu haben wo systemspezifische bezeichner ohne kollisionen existieren können.
-
Ich glaube, weil das Name-Mangling die Namespaces so abbildet.
edit: Shade, was du meinst sind führende doppelte Unterstriche. Die sind in C genauso reserviert wie in C++.
-
ok, c++:
Each name having two consecutive underscores is reserved to the implementation for use as a name with both extern "C" and extern "C++" linkage.
c:
nix, nur underscores am anfang sind verboten.
-
Bashar schrieb:
edit: Shade, was du meinst sind führende doppelte Unterstriche. Die sind in C genauso reserviert wie in C++.
Ist es nicht so, das alle doppelten Unterstriche verboten sind. eben um zB namensräume abzubilden:
std__vector__int
für
std::vector<int>
und dergleichen?
-
Ja, aber das hat wieder nichts mit "Reserviert für die Plattform.
um einen namensraum zu haben wo systemspezifische bezeichner ohne kollisionen existieren können." zu tun.
-
Hilfe, mein Compiler compiliert illegalen Quellcode:
int main() { int __lollipop = -1; return 88; }
\test\test\main.cpp(315) : warning C4189: '__lollipop': Lokale Variable ist initialisiert aber nicht referenziert
Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen@fricky: das ist doch ein Link zum OS Development Projekt
Wenns denn so ist, das Bezeichner mit doppelten Unterstrichen für die Plattform reserviert sind um Kollisionen zu vermeiden,
macht dös doch Sinn, ne. So für die OS Coders reservierte Sachens und so, ne.
-
Big Brother schrieb:
Hilfe, mein Compiler compiliert illegalen Quellcode:
Na und, dein Compiler ist doch nicht die Polizei.
-
Big Brother schrieb:
@fricky: das ist doch ein Link zum OS Development Projekt
Wenns denn so ist, das Bezeichner mit doppelten Unterstrichen für die Plattform reserviert sind um Kollisionen zu vermeiden,
macht dös doch Sinn, ne. So für die OS Coders reservierte Sachens und so, ne.die wollen zwei underscores hintereinander irgendwo mitten in namen verwenden. das finde ich schräg, aber sollen sie doch machen, wenn sie's toll finden...
-
;fricky schrieb:
die wollen zwei underscores hintereinander irgendwo mitten in namen verwenden. das finde ich schräg, aber sollen sie doch machen, wenn sie's toll finden...
Aber wäre es nicht eine tolle Sache, das denen da zu sagen, statt hier einen Mecker-Thread aufzumachen?
-
volkard schrieb:
Aber wäre es nicht eine tolle Sache, das denen da zu sagen, statt hier einen Mecker-Thread aufzumachen?
vielleicht gehe ich nachher in erhards chatroom und spreche es an, wenn ich's nicht vergessen habe.
-
volkard schrieb:
;fricky schrieb:
die wollen zwei underscores hintereinander irgendwo mitten in namen verwenden. das finde ich schräg, aber sollen sie doch machen, wenn sie's toll finden...
Aber wäre es nicht eine tolle Sache, das denen da zu sagen, statt hier einen Mecker-Thread aufzumachen?
Da meckert der Richtige ...
Mit Benennungskonventionen gibt es immer Schwierigkeiten, und sei es nur daß µ$ die PN vergewohlwurstelt hat.
Ich hab' das Projekt so halb mitverfolgt, wir könnten Wetten abschließen, wann "Pretty OS" zum "Rotten OS" wird und damit den einzigen Grund abliefern, das Projekt am Laufen zu halten.
Henkman hat sich recht viel überlegt, aber nicht, wozu das OS gut sein soll (außer zum Lernen) und sich konsequent die langweiligste Plattform der Welt (X86) ausgesucht. Aber ich glaub', das will er genausowenig hören, wie daß doppelte Underscores befremdlich wirken.Wenn wir sowas Ambitioniertes unterstützen wollten, sollten wir einen Wettfond einrichten. Wenn "Henkman&the__Underscores" binnen 18 Monaten einen Benchmark schaffen, geht die halbe Kohle ans Team oder die ganze wird an die Pessimisten ausgeschüttet.
Da macht dann auch das Scheitern Spaß!
-
Lustiges Völkchen hier. "Henkman" wird hier wohl auch mal rein schauen müssen.
... und sich konsequent die langweiligste Plattform der Welt (X86) ausgesucht.
Gerade als Elektronikbastler solltest Du wahr nehmen, dass mittels Mini-ITX Mainboards inzwischen schon autonom navigierende Roboter wie der Scitos G5 http://www.henkessoft.de/Roboter/Roboter.htm#mozTocId452714 mittels x86 CPU und z.B. Linux gesteuert werden. So ganz langweilig ist x86 daher nicht, lediglich antiquiert und durch die historisch bedingte Abwärtskompatibilität inzwischen leider auch kompliziert.
-
pointercrash() schrieb:
"Henkman&the__Underscores"
^^ich krieg jetzt ein neues keyboard von dir. wegen 'nem lachanfall hab' ich soeben mein getränk auf die tasten gespuckt.
'each night i ask the stars up above - why must i be with x86 in love' *fg*
-
"Henkman&the__Underscores" klingt wie eine Kultband, könnte der Name für unseren "OS-Club" werden.
Ich hatte mich übrigens nicht getraut, das zu posten, kam aber auf die gleiche Idee wie Volkard.
Jetzt mal ganz konkret: Warum darf man in C99 keine "__" mitten im Bezeichner verwenden?