C++ Welche Tabulatorbreite?
-
Halllo,
ich weiß nicht welche Tabulatorbreite gängig benutzt wird wenn man C++ (oder auch andere Sprachen) programmiert? Ich habe bisher entweder 8 oder 4 benutzt wobei ich 4 "schöner" finde.
Gibt es Richtlinien (coding standard) die was vorgeben?
Danke euch
-
ist egal. wichtig ist nur, dass du keine 'echten tabs' benutzt, sondern spaces (0x20).

-
Wenn du keine Vorgaben hast, dann mach es wie's dir am besten gefaellt! Ich persoenlich hab eine Breite von 4, weil 8 einfach zu viel Platz wegnimmt. Aber das ist wie gesagt schlicht und einfach Geschmackssache!
Bouncer schrieb:
ist egal. wichtig ist nur, dass du keine 'echten tabs' benutzt, sondern spaces (0x20).

ob das wichtig ist oder nicht, muss er wohl selber entscheiden

-
öh und was ist das oder wie mache ich das ?
-
Blue-Tiger schrieb:
Bouncer schrieb:
ist egal. wichtig ist nur, dass du keine 'echten tabs' benutzt, sondern spaces (0x20).

ob das wichtig ist oder nicht, muss er wohl selber entscheiden
natürlich, wenn man's nur mit eigenen codes zu tun hat, dann ist es egal.

-
Bouncer schrieb:
ist egal. wichtig ist nur, dass du keine 'echten tabs' benutzt, sondern spaces (0x20).
Wieso keine Tabs?
-
meinen code werden eine reihe anderer leute lesen, meist unter linux, deswegen frage ich .....also wie kann ich es hinbekommen dass die leute die ihn lesen auch was sauberes vor sich liegen haben?
-
also mit linuxern ist das so'ne sache. die haben anstatt cr/lf nur eins davon am zeilenende. naja, aber was die tabs angeht: echte tabs sind übel, wenn der andere nicht die gleiche tab-breite eingstellt hat wie du (meistens hat er's nicht). deshalb rate ich zu einem editor, der tabs durch spaces ersetzt. dass die quelltexte dadurch etwas grösser werden ist vernachlässigbar.

-
Also ich kann unter vim die tabulatoren durch spaces ersetzen. Aber sobald ich einen anderen editor öffne dann sind die einrückungen wieder anders.....? Das gibts doch nicht.
Sobald ich sie unter kate/kwrite ändere sind sie wieder unter vim anders.
-
einGastZuViel schrieb:
ich weiß nicht welche Tabulatorbreite gängig benutzt wird wenn man C++ (oder auch andere Sprachen) programmiert?
das ist völlig wurst. und ich bevorzuge sogar echte tabs und keinen whitespace müll. denn code-einrückungen sollten semantisch sein und nicht "schön".
int foo; double bar; for(;;) stuff();sowas sieht "nett" aus, hat aber keinen mehrwert. interessant ist nur, dass der schleifenkörper eine einrückung hat.
int foo; double bar; for(;;) stuff();sieht zwar mit nem verhunzten tab komisch aus, verliert aber kein stück an einrückungsbedeutung.
am besten is dann eh so

int foo; double bar; for(;;) stuff();
-
Bouncer schrieb:
also mit linuxern ist das so'ne sache. die haben anstatt cr/lf nur eins davon am zeilenende.
Das hat erstens nichts mit Linux zu tun, und zweitens würde ich gerade gern wissen, was das mit der Frage zu tun hat, Apeman.
-
einGastZuViel schrieb:
meinen code werden eine reihe anderer leute lesen, meist unter linux, deswegen frage ich .....also wie kann ich es hinbekommen dass die leute die ihn lesen auch was sauberes vor sich liegen haben?
Wenn du in einem Team arbeitest, mach das mit dem Team aus. Aber ganz egal ob du jetzt alleine programmierst oder mit anderen. Wichtig ist: erarbeitet euch (bzw. erarbeite dir, wenn du allein arbeitest) Code-Conventions und haltet euch alle daran. Zum Thema "lesserlicher Code" gehoert ja noch wesentlich mehr als "Tabulatorbreite", sondern auch Fragen wie "kommen die { und } auf eigene Zeilen oder nicht" und "wie benenn ich meine Variablen (cammelCase oder underscore_separated, ...)". Da hat jeder seine eigenen Vorstellungen und Geschmaecker, und es gibt zig Flamewars und Diskussionen zu diesen Themen (auch hier im Forum).
Egal ob du jetzt im Team arbeitest oder nicht, du wirst es nie Allen recht machen koennen! Es gibt hier keinen "richtigen" Weg, das ist echt nur eine Frage von Vorlieben. Es gibt auch in der Linuxwelt zig verschiedene Konventionen, und wenn du jetzt fragst, an welche du dich halten sollst, wirst du nur einen Flamewar heraufbeschwoeren. Such dir einen Stil, der dir gefaellt und halt dich daran, und basta

(Wenn du im Forum/Google z. B. nach "Coding Convention" suchst, wirst du garantiert genug Material finden, aus dem du deine eigenen Conventions zusammenstoepseln kannst)
-
Bouncer schrieb:
ist egal. wichtig ist nur, dass du keine 'echten tabs' benutzt, sondern spaces (0x20).
Totaler Käse. Wichtig ist nur, dass du Tabs und Spaces nicht mischst. Und wie Blue-Tiger sagt, wenn du im Team arbeitest, dass du dich an eine gemeinsame Konvention hältst.
thordk schrieb:
und ich bevorzuge sogar echte tabs und keinen whitespace müll
Yep, mache ich auch. Denn wenn man das strikt durchzieht, braucht man sich um Tab-Breite überhaupt keine Gedanken machen. Das hat lediglich Auswirkungen auf die Darstellung, nicht aber die Einrückung selbst.
-
LordJaxom schrieb:
Bouncer schrieb:
also mit linuxern ist das so'ne sache. die haben anstatt cr/lf nur eins davon am zeilenende.
Das hat erstens nichts mit Linux zu tun, und zweitens würde ich gerade gern wissen, was das mit der Frage zu tun hat, Apeman.
irgendwie war mir so, als hätte der OP erwähnt, dass er textfiles zwischen linux und win austauschen möchte. deshalb hab' ich ihn auf den unterschied hingewiesen.
groovemaster schrieb:
Bouncer schrieb:
ist egal. wichtig ist nur, dass du keine 'echten tabs' benutzt, sondern spaces (0x20).
Totaler Käse. Wichtig ist nur, dass du Tabs und Spaces nicht mischst.
naja, kann ja sein, dass du deine quelltexte mit 'nem editor schreibst, bei dem tabs und spaces unterschiedlich angezeigt werden (word? openoffice?). sowas wäre mir zu nervig. wenn ich die tab-taste drücke, dann will ich einfach nur schneller nach rechts als mit der space-taste und deshalb ist es besser, wenn der editor dann 4 spaces einfügt als einen tab-character, dessen breite nicht festgelegt ist.
groovemaster schrieb:
Das hat lediglich Auswirkungen auf die Darstellung, nicht aber die Einrückung selbst.
alles klar, du weisst bescheid


-
Bouncer schrieb:
naja, kann ja sein, dass du deine quelltexte mit 'nem editor schreibst, bei dem tabs und spaces unterschiedlich angezeigt werden (word? openoffice?). sowas wäre mir zu nervig. wenn ich die tab-taste drücke, dann will ich einfach nur schneller nach rechts als mit der space-taste und deshalb ist es besser, wenn der editor dann 4 spaces einfügt als einen tab-character
Begründung?
Bouncer schrieb:
dessen breite nicht festgelegt ist.
Was vollkommen belanglos ist, wenn du "echte" Tabs verwendest statt Spaces.
-
groovemaster schrieb:
Bouncer schrieb:
naja, kann ja sein, dass du deine quelltexte mit 'nem editor schreibst, bei dem tabs und spaces unterschiedlich angezeigt werden (word? openoffice?). sowas wäre mir zu nervig. wenn ich die tab-taste drücke, dann will ich einfach nur schneller nach rechts als mit der space-taste und deshalb ist es besser, wenn der editor dann 4 spaces einfügt als einen tab-character
Begründung?
hab ich schon angedeutet, ansonsten --> http://www.adamspiers.org/computing/why_no_tabs.html
groovemaster schrieb:
Bouncer schrieb:
dessen breite nicht festgelegt ist.
Was vollkommen belanglos ist, wenn du "echte" Tabs verwendest statt Spaces.
vielleicht hast du schon mal ein code snippet in dieses board gepostet, dann weisst du, was ich meine. es ist sicher kein problem, wenn man daheim ganz allein in seinem hobbykeller programmiert. aber wehe man tauscht quelltexte mit anderen aus. spätestens dann werden echte tabs zu einem ärgernis (zum glück gibt es 'indent' und ähnliche tools, die das wieder ausbügeln können).

-
auf der seite ist das beispiel hier:
typedef struct { int _mp_alloc; /* Number of *limbs* allocated and pointed to by the D field. */ int _mp_size; /* abs(SIZE) is the number of limbs the last field points to. If SIZE is negative this is a negative number. */ mp_limb_t *_mp_d; /* Pointer to the limbs. */ } __mpz_struct;wer so kommentiert, bei dem ist eh schon hopfen und malz verloren :p
typedef struct { /* Number of *limbs* allocated and pointed * to by the D field. */ int _mp_alloc; /* abs(SIZE) is the number of limbs * the last field points to. If SIZE * is negative this is a negative * number. */ int _mp_size; /* Pointer to the limbs. */ mp_limb_t *_mp_d; } __mpz_struct;kommentiert genauso toll und egal, was für nen einrückungstyp verwendet wird, das ganz kann schlicht nicht zerfetzt werden.
-
Bouncer schrieb:
groovemaster schrieb:
Bouncer schrieb:
naja, kann ja sein, dass du deine quelltexte mit 'nem editor schreibst, bei dem tabs und spaces unterschiedlich angezeigt werden (word? openoffice?). sowas wäre mir zu nervig. wenn ich die tab-taste drücke, dann will ich einfach nur schneller nach rechts als mit der space-taste und deshalb ist es besser, wenn der editor dann 4 spaces einfügt als einen tab-character
Begründung?
hab ich schon angedeutet, ansonsten --> http://www.adamspiers.org/computing/why_no_tabs.html
Es gibt genauso gute Argumente FUER Tabs

http://www.movementarian.org/docs/whytabs/
http://www.derkarl.org/why_to_tabs.htmlIn fact, the advantage of hard-tabs is demonstrated by the kde cvs repository. Most applications are indented with spaces, most of those are inconsistently tabbed. Of the few tabbed modules (aRts, Noatun), the code is exactly 100% consistent.
-
Blue-Tiger schrieb:
Es gibt genauso gute Argumente FUER Tabs

ja, es ist, wie so vieles beim programmieren, eine glaubensfrage.
ich z.b. verwende nur spaces und gehe damit von vorn herein allen tab-problemen aus dem weg.

-
Persönlich 4. Ist aber dank indent total egal. Ebenso Tab/Space, Allman/K&R/GNU, ...
Edit: Allman heisst der Mensch...
-
Ah ich danke allen für ihren regen Beitrag - ihr habt mir (auch wenn ihr es nicht glaubt) doch um einiges weitergeholfen. Ich hoffe das eskaliert hier jetzt nicht
