• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

C Rätsel

oc2pus

Ultimate Guru
Dakuan schrieb:
Ich finde C schon OK, so wie es ist. Ich denke man kann in jeder Programmiersprache Blödsinn machen. Ich persönlich nutze viele Freiheiten, die C/C++ bietet nicht aus, weil ich bestrebt bin, meinen Code so zu schreiben, daß ich selbst ihn nach einem halben Jahr noch verstehen kann

na dann sorg mal dafür das du immer genug Stack hast ;)

Variablen sollten dort deklariert werden wo sie gebraucht werden und innerhalb ihres scopes....

if (x==y) {
int a = 5;
...
}

und die Pointer Arithmektik in C macht diese Sprache gerade so effizient... deshalb sollte sie auch aingesetzt werden :)

dann brauch ich a nur innerhalb des Blocks {} und sie belegt keinen zusätzlichen Speicher ==> besser als a vor dem Block zu deklarieren, da sie evtl NIE gebraucht wird. klar?
 

Dakuan

Hacker
Variablen sollten dort deklariert werden wo sie gebraucht werden und innerhalb ihres scopes....
Das ist sicherlich eine Frage der persönlichen Auffassung und Arbeitsweise und hängt vielleicht auch von der Programmieraufgabe ab.
und die Pointer Arithmektik in C macht diese Sprache gerade so effizient...
richtig und ich benutze sie auch ausgibig, aber eben nicht ganz so kryptisch wie in der Denksportaufgabe.
besser als a vor dem Block zu deklarieren, da sie evtl NIE gebraucht wird. klar?
Klar wie trübe Tinte :wink: Mein alter Borland Compiler sagt mir das aber, sodaß ich das korrigieren kann. Außerdem werden nicht benötigte Variablen wegoptimiert. Ich merke das immer beim Tracen (->invalid breakpoint). Ob gcc das auch macht konnte ich noch nicht ausprobieren da beim Installieren von Kdevellop unter SuSE 8.2 diverse Dinge nicht gefunden werden. Ich warte desshalb auf 9.2.

na dann sorg mal dafür das du immer genug Stack hast
Damit hatte ich bisher noch keine Probleme, eines meiner Programme allerdings schon. Es sollte Binärcode für eine Grafic Engine (M$ Flugsimulator) auf Fehler untersuchen und hatte eine enorme Rekursionstiefe (über 3000), sodaß ich dafür einen eigenen Puffer mit Überwachung einrichten mußte.

C bietet viele Freiheiten, find ich auch toll, aber ich muss nicht alle nutzen.
Dakuan

---------------------------------
IF a == b AND b == c THEN a == c except where prohibited by law
 

Zinnwurm

Hacker
Dakuan schrieb:
Nein, aber nur, weil man Variablen jederzeit automatisch deklarieren kann, muss man es ja nicht, sondern kann sie brav an den Anfang der Datei schreiben.
Das Problem ist doch, dass der Variablentyp sich durch diese automatische Zuweisung ändern kann. Das ist eine potienzielle Fehlerquelle, und da möchte ich zumindest drauf aufmerksam gemacht werden.
Ich nutze das ausschließlich bei Schleifenvariablen, die sonst nichtmehr gebraucht werden
Bei Schleifenvariablen ($i, $j, $k) sollten sowiso Sonderregeln gelten (Freiwild) :wink:
Dakuan
1. Rührt wohl daher, dass PHP ne arg web-orientierte Sprache ist (lässt sich außerhalb des Apache kaum vernünftig verwenden XD). D.h., alles was PHP macht, soll im Prinzip irgendwann dem User in den Browser geschrieben werden. Darum finde ich eine automatische toString-Umwandlung von int oder solche Scherze ganzpraktisch.
Aber egal, gehört weder hier rein, noch ist es wichtig, noch bist du im Unrecht ;-D
2. jo ^^
 
Oben