- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 4 von 4

Thema: C-Tutorial (Blöcke)

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    03.12.2008
    Alter
    29
    Beiträge
    438

    C-Tutorial (Blöcke)

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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?

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    26.09.2008
    Ort
    Wien
    Alter
    37
    Beiträge
    94
    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?
    while (!asleep()) sheep++;
    RP6 und Asuro Befehlsübersicht

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    03.12.2008
    Alter
    29
    Beiträge
    438
    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...

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    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.
    #ifndef MfG
    #define MfG

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test