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
char* p vs. char *p
- xq
- Establishment
- Beiträge: 1589
- Registriert: 07.10.2012, 14:56
- Alter Benutzername: MasterQ32
- Echter Name: Felix Queißner
- Wohnort: Stuttgart & Region
- Kontaktdaten:
Re: char* p vs. char *p
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
Code: Alles auswählen
char * p;
Code: Alles auswählen
char* p, s;
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…
Programmiert viel in Zig und nervt Leute damit.
Programmiert viel in Zig und nervt Leute damit.
Re: char* p vs. char *p
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.
"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.
- Schrompf
- Moderator
- Beiträge: 5044
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas
- Wohnort: Dresden
- Kontaktdaten:
Re: char* p vs. char *p
* 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.
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.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
-
- Establishment
- Beiträge: 308
- Registriert: 25.08.2019, 05:00
- Alter Benutzername: gdsWizard
- Kontaktdaten:
Re: char* p vs. char *p
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.
Hat den StormWizard 1.0 und 2.0 verbrochen. https://mirrorcad.com
-
- Establishment
- Beiträge: 426
- Registriert: 23.01.2013, 15:55
Re: char* p vs. char *p
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.
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.