PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eine Frage des Stils (der Variablendeklaration)


SamStone
2006-04-11, 23:16:42
1. Aha, und wie bekomme ich char cmd[] nach const char*?
Oder: Wie lese ich etwas in eine const char* Variable mit fgets?

Das eine will char[], das andere char* ... irgendwie muss es doch eine Brücke zwischen beiden geben?
--> nichts versteh
Wenn in einer Funktionsdeklaration in C da ein char cmd[] steht, dann ist das technisch exakt das selbe wie ein pointer (also wie ein char* cmd).

Mal ne Frage am Rande:
Was ist formal "richtiger" (also Standard)?
char* name;
oder
char *name;

Xmas
2006-04-11, 23:36:23
Mal ne Frage am Rande:
Was ist formal "richtiger" (also Standard)?
char* name;
oder
char *name;
Dazu gibt es leider keinen allgemeingültigen Standard. Für ersteres spricht dass der * ja den Typ der Variable angibt, für letzteres dass "char* a, b;" missverständlich ist.

Coda
2006-04-12, 00:09:53
Ich würds auch an die Variable pappen. Aus dem Grund den Xmas schon genannt hat...

ScottManDeath
2006-04-12, 00:57:08
Ich papp es an den Typ und schreibe generell jede Deklaration auf eine eigene Zeile.

Coda
2006-04-12, 02:09:22
Ich find das bloated manchmal Code ziemlich wenn man Deklarationen in eigene Zeilen packt, obwohl sie logisch irgendwie zusammengehören.

Aber Pointer und nicht-Pointer in eine Zeile ist schon böse ;)

ScottManDeath
2006-04-12, 03:01:09
Ich find das bloated manchmal Code ziemlich wenn man Deklarationen in eigene Zeilen packt, obwohl sie logisch irgendwie zusammengehören.
Wenn man zu viele Deklarationan hat, sollte man vielleicht mal an refaktorisieren denken ;) Oder die Deklarationen nicht gleich zu Beginn machen, sondern dort wo sie benötigt werden.... Das geht auch unter ßieNeintieeNein ;)

Aber Pointer und nicht-Pointer in eine Zeile ist schon böse ;)
Jupps, sowat tut man nicht. :ucrazy:

Expandable
2006-04-12, 12:05:48
Was spricht eigentlich gegen so einen Stil?

int* x; und
int *x, y; statt int* x, y;
int *x, *y; statt int* x, * y;

So schlägt man zwei Fliegen mit einer Klappe. int* x finde ich sinnvoller als int *x, falls es aber zu Mehrdeutigkeiten wie oben führt, kann man es ja an den Bezeichner pappen.

Da ich meine Pointer aber sowieso auch gleich mit new oder 0 initialisiere, kommt es der Übersichtlichkeit halber eh in 2 Zeilen, also habe ich solche Probleme erst gar nicht ;)

Coda
2006-04-12, 12:32:25
Wenn man zu viele Deklarationan hat, sollte man vielleicht mal an refaktorisieren denken ;)
Beispiele:

float x, y, z;
float top, bottom, left, right;

Ich würd nicht auf die Idee kommen das ich mehrere Zeilen zu schreiben :|

#44
2006-04-12, 14:03:21
OMG ein streit um einen schreibstil... ;) 100% geschmackssache ;D wobei ich mich mal spontan coda & expandable anschließe

ScottManDeath
2006-04-12, 23:01:51
Oki, good point. Belassen wir es mal dabei. ;)

Sonst malt noch irgendjemand eine Deklarations Karikatur und dann wollen die anderen diesen jenigen mal fix steinigen ;)

Coda
2006-04-12, 23:49:55
OMG ein streit um einen schreibstil... ;)
Streit? :|

Juerg
2006-04-14, 22:44:55
Beispiele:

float x, y, z;
float top, bottom, left, right;

Ich würd nicht auf die Idee kommen das ich mehrere Zeilen zu schreiben :|Niemals! Das ist gelinde gesagt eine Katastrophen-Kakaphonie. :O Es gibt Sprachen, da sind dann y und z bzw. bottom, left und right keine Variablen vom Typ float. ScottManDeath hat schon recht. Jede Deklaration eine Linie.

Coda
2006-04-15, 00:14:58
Es gibt Sprachen, da sind dann y und z bzw. bottom, left und right keine Variablen vom Typ float.
Hä? Ja und? Das ist C++!

Juerg
2006-04-15, 08:53:16
Hä? Ja und? Das ist C++!Hä? Ja und? Die Steuerzeichen nicht, das Format des Dokuments sollte aber unabhängig von der Sprache sein.

Gast
2006-04-15, 10:15:12
Hä? Ja und? Die Steuerzeichen nicht, das Format des Dokuments sollte aber unabhängig von der Sprache sein.Verstehe ich dich richtig:
Du willst also, dass man programmiersprachen unabhängigen Quellcode verfasst?
Wie soll das denn gehen?

Juerg
2006-04-15, 12:01:59
Verstehe ich dich richtig:
Du willst also, dass man programmiersprachen unabhängigen Quellcode verfasst?
Wie soll das denn gehen?Du hast es nicht kapiert.

Folgendes: Wenn Du einen formalen Brief in Englisch und in Deutsch abfasst, mit demselben Inhalt, sieht er genau gleich aus (sollte er genau gleich aussehen), abgesehen von ein paar unbedeutenden Absatzgrössen wegen Wortlängen usw.

Dies sollte man auch (Du solltest das auch ;)) auf Programmiersprachen übertragen können.

Man vermeidet so Sprachen abhängige Fehler. Man schreibt dann eben Sprachen unabhängige Dokumente.

SamStone
2006-04-15, 12:23:29
Du hast es nicht kapiert.

Folgendes: Wenn Du einen formalen Brief in Englisch und in Deutsch abfasst, mit demselben Inhalt, sieht er genau gleich aus (sollte er genau gleich aussehen), abgesehen von ein paar unbedeutenden Absatzgrössen wegen Wortlängen usw.

Dies sollte man auch (Du solltest das auch ;)) auf Programmiersprachen übertragen können.

Man vermeidet so Sprachen abhängige Fehler. Man schreibt dann eben Sprachen unabhängige Dokumente.
Was für ein Schwachsinn :|

Coda
2006-04-15, 12:52:39
Hä? Ja und? Die Steuerzeichen nicht, das Format des Dokuments sollte aber unabhängig von der Sprache sein.
Drogen?

Was für ein Schwachsinn :|
Aber wirklich.

mbee
2006-04-15, 14:00:50
Man vermeidet so Sprachen abhängige Fehler. Man schreibt dann eben Sprachen unabhängige Dokumente.

Toll: "Dieser Quelltext ist garantiert zu 2% sprachunabhängig!" ;)

Sorry, aber das halte ich ebenfalls für ausgemachten Blödsinn.

Juerg
2006-04-15, 17:29:28
Was für ein Schwachsinn :|Warum?

Juerg
2006-04-15, 17:33:33
Toll: "Dieser Quelltext ist garantiert zu 2% sprachunabhängig!" ;)

Sorry, aber das halte ich ebenfalls für ausgemachten Blödsinn.
Eben NICHT der Text aber das Format. Irgendwie hab ich das Gefühl wir reden aneinander vorbei.

Coda
2006-04-15, 17:34:27
Weils einfach keinen Sinn macht. Wie willst du denn bitte ein C++ Programm in Haskell, Scheme oder Brainfuck syntaktisch genau gleich schreiben?

Und wenn es mit irgend ner Sprache überhaupt geht: Was bringt dir das? :crazy2:

Trap
2006-04-15, 18:03:45
Man hat am Ende Code der in mehreren Sprachen gültig und scheiße ist.

Juerg
2006-04-15, 18:51:15
Man hat am Ende Code der in mehreren Sprachen gültig und scheiße ist.
Auch nicht kapiert :(

Scheisse ist vom Inhalt abhängig nicht vom Format ;)

Xmas
2006-04-15, 19:14:30
Scheisse ist vom Inhalt abhängig nicht vom Format ;)
Schlecht formatierter Code (falls Formatieren überhaupt notwendig ist) ist auch Scheiße.

Statt "Du hast es nicht kapiert" zu schreiben könntest du ja auch mal konkreter erläutern was du überhaupt meinst.

Juerg
2006-04-15, 19:52:31
Wie ich schon sagte:
http://www.forum-3dcenter.org/vbulletin/showthread.php?p=4196567#post4196567

Ah.. jetzt ist mir ein Wort dafür eingefallen: Dokumentvorlage :smile:

Coda
2006-04-15, 20:01:31
Das ist kein guter Grund aus den schon zigmal erwähnten Gründen X-D

Juerg
2006-04-15, 20:16:00
Das ist kein guter Grund aus den schon zigmal erwähnten Gründen X-DDas ist ja auch kein Grund sondern Methode. :| ;D

Gründe dafür wären: Wiedererkennbarkeit, Verständlichkeit, Kostensersparnis, Nachhaltigkeit nur um ein paar zu nennen. Wenns für Dich nicht passt, lass es einfach und gut ist.

Trap
2006-04-15, 20:26:32
Ich schreib alles so wie es in der Sprache üblich ist, in der ich programmiere (zumindest versuch ich das).

Gründe dafür hast du schon genannt.

Xmas
2006-04-15, 20:58:23
Das ist ja auch kein Grund sondern Methode. :| ;D

Gründe dafür wären: Wiedererkennbarkeit, Verständlichkeit, Kostensersparnis, Nachhaltigkeit nur um ein paar zu nennen. Wenns für Dich nicht passt, lass es einfach und gut ist.
Bei welchen Sprachen kommt es eigentlich vor dass bei "float a, b;" b nicht float ist, und besitzen diese Sprachen überhaupt C-ähnliche Syntax?

a = b ist in Pascal auch etwas völlig anderes als in C.

Juerg
2006-04-15, 21:24:56
Bei welchen Sprachen kommt es eigentlich vor dass bei "float a, b;" b nicht float ist, und besitzen diese Sprachen überhaupt C-ähnliche Syntax?
Ähhh, jetzt hast Du mich aber voll erwischt :biggrin: Das habe ich bewusst unterschlagen... :redface: