PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C-Tutorial (Blöcke)



Da_Vinci13
07.12.2008, 12:14
Blöcke
Im vorigen Abschnitt haben Sie bereits die geschwungenen Klammern { und } kennen gelernt. C-Programme sind in so genannte Blöcke unterteilt. Da gibt es zum einen das Hauptprogramm und die jeweiligen Unterprogramme, aber auch Schleifen und bedingte Anweisungen. Jedes dieser Konstrukte stellt ein eigenständiges Stück Code dar, das als solches gekennzeichnet werden muss.

Die Kennzeichnung für einen Blockanfang ist die öffnende geschweifte Klammer, während ein Blockende mit der schliessenden Klammer notiert wird. Ein Block kann mehrere Teilblöcke enthalten, die wiederum Teilblöcke enthalten dürfen, etc. Öffnende und schliessende Block-Klammern tauchen immer Paarweise auf.

Um Programme übersichtlich zu gestalten, wird jeder Block oder Teilblock eingerückt (siehe unten). Dann ist auch bei längeren Code sofort ersichtlich, wo ein Block beginnt und wo er endet. Geschweifte Klammern werden dann nur selten vergessen, und falls doch kann der Fehler schnell erkannt werden.

Variablen, die in einem Block deklariert werden, sind nur innerhalb dieses Blocks – und damit auch in allen seinen Teilblöcken – gültig.

int main (void)
{ /* der Block "main" beginnt */
int zahl;

{ /* ein Block beginnt */
/* hier koennen Deklarationen und Anweisungen stehen */
} /* der Block endet */

return 0;
} /* "main" endet */


Ich versteh den Unterschied zwischen { und */ nicht.
Kann mir da jemand weiterhelfen?

nil.at
07.12.2008, 12:31
Und weil du den Unterschied nicht verstehst, machst du denselben Thread gleich 3 mal auf?
Ausserdem wäre dieses Thema besser im Programmierbereich aufgehoben, aber egal.

Der Unterschied ist leicht erklärt:
In so gut wie jeder Programmiersprache (so auch in C) müssen alle Befehle innerhalb von Blöcken stehen. Diese Blöcke werden immer mit einem gewissen "Kopf" eingeleitet.

int main(int x) beispielsweise heisst, dass hier die Funktion (bzw. Methode bei OO Programmiersprachen) "main" beginnt (von der JEDES Programm genau EINE braucht). Als Parameter wird ein Integer übergeben, auf den man mit dem Namen "x" zugreifen kann, und am Ende wird ein int mittels return zurückgegeben. Nach dieser Zeile muss mit einer geöffneten geschwungenen Klammer der Block geöffnet und begonnen werden, und am Ende - also nach der gesamten Abarbeitugn wieder geschlossen werden.

// und /* bzw */ sind nur Kommentare. Sie erscheinen in jeder besseren IDE in grüner Farbe und sind frei wählbar. Du kannst also Notizen für dich selbst dahinter schreiben, damit du dir beispielsweise merkst welche Aufgabe eine gewisse Funktion hat, oder warum du eine Variable zu einem bestimmten Zeitpunkt setzt und so weiter.

Hier unterscheidet man wieder // von /* und */.
// repräsentiert einen EINzeiligen Kommentar, der Text darf also nicht in der nächsten Zeile fortgesetzt werden. Mittels /* allerdings, öffnet man einen mehrzeiligen Kommentar, der solange geht bis man ihn mit */ wieder beendet. Du würdest merken dass der Kommentar noch nicht geschlossen ist, indem der gesamte Text grün wäre.

Soweit verstanden?

Da_Vinci13
07.12.2008, 17:16
Jep! Danke!
Also wenn ich das richtig verstehe ist /*, */ und // nur für sich selbst hier und das führt der Roboter dann gar nicht aus.

PS: Sorry, aber ich hab den Thread nicht absichtlich 3-mal aufgemacht...

Jaecko
07.12.2008, 17:51
Der Roboter wird diese Zeilen garnicht bemerken. Die werden vom (Pre-)Compiler schon rausgeworfen.

Ich selber bevorzug bei den Kommentaren die //, da man hier dann ganze Codeblöcke mit /**/ auskommentieren kann. Steht in so nem Block selber ein /**/-Kommentar, gibts dann da Probleme, da der */ des Kommentars das "Auskommentieren" des Codeblocks beendet.