Meinungsbilderhebung zu Variabledenklarationen
-
@It0101 sagte in Meinungsbilderhebung zu Variabledenklarationen:
Der * ist in der vorhandenen Interpretation "nur" eine Modifikation der Variable.
Und dann gibt es so schönen Code
PointerT a, b, c, d;
Wo alle Variablen den gleichen Typ haben.
-
Immer a) seit ein paar Jahren. Das hab ich mir so angewöhnt und bin von b) umgestiegen. c) fand ich schon immer schweitzer Käse.
Aber generell kann auch ich mit allen Schreibweisen leben. Sollte man auch.
Aufeinanderfolgende Referenzen in einer Deklaration gabs bei mir richtig selten. Würde aber nach dem gleichen Schema verfahren.
-
@john-0 sagte in Meinungsbilderhebung zu Variabledenklarationen:
@It0101 sagte in Meinungsbilderhebung zu Variabledenklarationen:
Der * ist in der vorhandenen Interpretation "nur" eine Modifikation der Variable.
Und dann gibt es so schönen Code
PointerT a, b, c, d;
Wo alle Variablen den gleichen Typ haben.
Klar. Da ist ja auch kein Asterisk, Du Schlauberger.
-
@Columbo er meint mit PointerT als typedef.
-
@Swordfish Das habe ich begriffen. Es ist trotzdem irrelevant. Weil in dieser Deklaration kein Asterisk vorkommt.
-
-
@Columbo sagte in Meinungsbilderhebung zu Variabledenklarationen:
Klar. Da ist ja auch kein Asterisk, Du Schlauberger.
Aber der Asterisk versteckt sind im typedef!
-
@john-0 sagte in Meinungsbilderhebung zu Variabledenklarationen:
@Columbo sagte in Meinungsbilderhebung zu Variabledenklarationen:
Klar. Da ist ja auch kein Asterisk, Du Schlauberger.
Aber der Asterisk versteckt sind im typedef!
Ja, und das tut man nicht.
-
-
@Th69 Dieses typedef war mal eine Anforderung an Container. Scheint es im aktuellen Draft nicht mehr zu sein.
-
@Swordfish sagte in Meinungsbilderhebung zu Variabledenklarationen:
Ja, und das tut man nicht.
Es ist eine seit Jahrzehnten praktizierte Technik in C und C++, und wird in C++17 noch immer genutzt.
-
@john-0 Quelle.
In Wald und Wiesen-Code tut man es auf jeden Fall nicht.
-
LPVOID
Im Ernst, ich seh das öfter als mir lieb ist, dass Leute für Zeigertypen Typaliases definieren, jedes
Foo
kriegt seintypedef Foo* PFoo
. Ich denke man kann sich da bei Niklaus Wirth bedanken.
-
@Bashar Ja, und die UN werden wir auch im Leben nimmer los. Deswegen sagte ich ja "man tut es nicht" und nicht "niemand tut es" ^^
-
@Bashar sagte in Meinungsbilderhebung zu Variabledenklarationen:
LPVOID
Im Ernst, ich seh das öfter als mir lieb ist, dass Leute für Zeigertypen Typaliases definieren, jedes
Foo
kriegt seintypedef Foo* PFoo
. Ich denke man kann sich da bei Niklaus Wirth bedanken.Ich finde das ehrlich gesagt auch schlimm. Bei der Deklaration einer Variablen sollte dem Leser sofort klar sein ob es ein Pointer ist oder nicht.
-
@Swordfish sagte in Meinungsbilderhebung zu Variabledenklarationen:
@john-0 Quelle.
In Wald und Wiesen-Code tut man es auf jeden Fall nicht.In dem solltest Du auch überhaupt keine normalen Zeiger mehr nutzen. Nur gibt es massenweise APIs, in denen das nicht funktioniert. Zudem ist die ISO Norm inkonsequent, weil etwa OpenMP (das wird aber ebenfalls laufend aktualisiert) und mordernes C++ zusammen gar nicht funktioniert. OpenMP Parallelisierung und moderne Containerdesigns – geht nicht. Es muss die klassische for-Schleife sein. OpenMP bietet eine Möglichkeit Offloading auf GPUs zu machen, da brauchst Du wieder rohe Zeiger usw. usw. …
-
@john-0 sagte in Meinungsbilderhebung zu Variabledenklarationen:
In dem solltest Du auch überhaupt keine normalen Zeiger mehr nutzen.
RoheNormale zeiger ist zu schwammig. Rohe besitzende zeiger.
Was hat OpenMP mit dem Sprachstandard zu tun. Garnix.
Und jetzt @all bitte back on topic.
-
@john-0 sagte in Meinungsbilderhebung zu Variabledenklarationen:
@Swordfish sagte in Meinungsbilderhebung zu Variabledenklarationen:
@john-0 Quelle.
In Wald und Wiesen-Code tut man es auf jeden Fall nicht.In dem solltest Du auch überhaupt keine normalen Zeiger mehr nutzen. Nur gibt es massenweise APIs, in denen das nicht funktioniert. Zudem ist die ISO Norm inkonsequent, weil etwa OpenMP (das wird aber ebenfalls laufend aktualisiert) und mordernes C++ zusammen gar nicht funktioniert. OpenMP Parallelisierung und moderne Containerdesigns – geht nicht. Es muss die klassische for-Schleife sein. OpenMP bietet eine Möglichkeit Offloading auf GPUs zu machen, da brauchst Du wieder rohe Zeiger usw. usw. …
Ja gut aber das ist ein einziges Beispiel.... Ältere Bibliotheken haben halt C-Interfaces. Damit muss man leben, aber man sich den alten ( oder schlechten ) Stil nicht unbedingt zu Herzen nehmen und das zum eigenen Dogma erklären.
Ich nutze auch Zeiger, wenn ich auf Buffern und so rumlaufe. Aber eben nicht undercover über ein makro oder ein typedef. Aber das ist auch der einzige Verwendungszweck.
-
@It0101 sagte in Meinungsbilderhebung zu Variabledenklarationen:
Aber eben nicht undercover über ein makro oder ein typedef.
Genau das ist aber Stand der Technik in der ISO-Norm!
-
@john-0 Dann schreib ein Proposal oder mach einen Thread auf wenn Du darüber quatschen willst. Hier off topic.