Seite 1 von 1
char* p vs. char *p
Verfasst: 20.03.2021, 00:51
von starcow
Welche Konvention verwendet ihr? Würde mich mal interessieren!
Ganz zu Beginn war ich bei char *p, aber mittlerweile empfinde ich char* p als "natürlicher", da für mich "p" die Variable und char* einfach der Typ ist.
Was mich in meiner Auffassung bestärkt, ist der Rückgabetyp von Funktionen. Will man einen Zeiger zurückgeben, kann man ja gar nicht anders, als das *-Symbol an den Datentyp anzuhängen.
char* foo();
Gegenargument ist vielleicht, dass sowas nicht wie erwartet funktioniert - leider:
char* p, s;
Wie haltet ihrs denn?
LG, starcow
Re: char* p vs. char *p
Verfasst: 20.03.2021, 09:56
von xq
Variante 3:
Finde ich persönlich am lesbarsten → damit wird es genommen. Code muss ja nicht dicht sein, wir haben Platz
Weg damit! Ich benutze aus genau solchen Gründen nur "1 Deklaration pro Zeile", damit kann man dann nämlich auch sowas wie Doku-Kommentare verteilen. Geht bei ner Multi-Deklaration auch nicht sauber
Re: char* p vs. char *p
Verfasst: 20.03.2021, 10:18
von nullptr
Ich war auch immer schon intuitiv auf der "char*" Seite und wenn ich die Wahl habe schreibe ich auch so meinen Code. Professionell halte ich mich an die jeweiligen Richtlinien falls vorhanden. Bzw. kann ein clang-format das dann erledigen. Argumentieren würde ich wenn nur aus Konsistenz Gründen für die entsprechend größere Seite :)
"const" wäre dann das nächste Thema. Hier tendiere ich zu "const T".
Aber wie bei den Pointern ist es mir im Endeffekt egal und ich nehme was vorhanden ist.
Re: char* p vs. char *p
Verfasst: 20.03.2021, 23:22
von Schrompf
* gehört zum Typ, also 'char* p;'
Ansonsten bin ich im Laufe der Jahre abgestumpft, ich lese über Whitespace drüber. Es ist mir ehrlich wurscht, wo die Leute ihre Leerzeichen hinetzen.
Re: char* p vs. char *p
Verfasst: 21.03.2021, 00:03
von Mirror
ich schreibe char *p, weil der Stern nur für p gilt. Wenn man mehere Variablen definiert führt das zu Fehlerquellen. Allerding vermeide ich Mehrfachdefinitionen und verwende sie nur in Einzelfällen.
Re: char* p vs. char *p
Verfasst: 21.03.2021, 00:58
von Spiele Programmierer
Der Zeiger ist Teil des Typen, nicht der Variable. Das ist Fakt. Weil man das zu Zeiten als C entworfen wurde noch nicht so wahrgenommen hat, haben wir aber die heutigen Syntaxprobleme wie char* a, b, bei dem nur a ein Zeiger wird, und so Dinge wie char (&a)[] und (void (a)())[] usw., die ziemlich konfus werden.
Wenn man weiter C++ verwendet, kann man da aber nix machen.
Ich bekenne mich jedoch zu char* p. Dann kann man sich für normale Zeiger und Referenzen vorstellen, C(++) hätte normalen Syntax. Arraysyntax und Mehrfachdeklarationen sind so oder so konfus in C++. Am besten meiden, z.B. durch usings.