Header-Dateien



  • Besonderer Dank an "arni". Ich glaub, jetzt hab ich's besser verstanden. Nochmals vielen Dank, dass du dir Zeit genommen und dir Mühe gegeben hast, mir das genau zu erklären....
    Natürlich auch ein Lob an die Anderen, die versucht haben, mir zu helfen.

    Spitze! 👍 👍 👍

    mfg,
    euer zocker001 🕶



  • Also: Dieses komische zeug nennt sich include guard und bewirkt folgendes: Wenn du es weglässt, und die header mehrmals einbindest, passiert das: Der kompiler findet die Datei einmal und bindet sie ein, beim 2. mal auch,... Nun darf aber z.B. nur eine Funktion mit dem namen FOO und der Parameterliste (int) existieren! Also benutzt du den include guard, der dafür sorgt das alles so klappt wies soll! Noch ein Tipp: falls du anfänger bist: schreib es einfach so, du verstehst es später (glaub mir, ich spreche aus Erfahrung...) Und wenn du wirklich makros benutzen willst (wovon aber in den meisten Fällen abzuraten ist) sieht das z.B. so aus: (meine lieblingsmakro)

    #define _string std::basic_string<TCHAR>
    

    /edit: Wieder einer schneller...



  • Hallihallo... 😃
    Yo, ich bin Anfänger.
    Das mit der Header-Datei-Geschichte hab ich im Großen ud Ganzen verstanden. Aber warum ist hier jeder gegen die Verwendung von Makros??? 😕



  • Hai Zocker
    makros sind zb nicht Typsicher.,Der compiler kann dir bei nicht beabsichtigten Typkonvertierungen nicht helfen, den Fehler zu finden.
    Beispiel

    #define MAX_USERS 42
    const int MAX_USERS = 42;
    

    unterscheidet sich dadurch, dass im zweiten FAll du u n d der Kompiler wissen, um welchen Datentyp es sich handelt.

    Außerdem werden Makros immer genau so oft und genau dort, wo du sie im Code verwendet hast, eingefügt, so viel ich weiß, ist es dann auch mit Optimierungen an dieser Stelle Essig.
    mfg
    arni



  • Genauer: Wenn Du #defines verwendest dann sagst du im Grunde nur dem Präprozessor dass er vor dem eigentlichen Kompilieren eine reine Textersetzung vornehmen soll; warum das meistens schlecht ist kannst Du in jedem besseren C++-Buch nachlesen...



  • Danke......
    ihr ratet mir also, lieber Variablen statt Makros zu verwenden. In meinem Buch werden allerdings keine negativen Bemerkungen angesprochen. Im Gegenteil:
    -gute Lesbarkeit
    -Änderungsfreundlichkeit
    -usw

    Macht euch nichts draus. Ich folge besser eurem Rat....

    Ciao
    euer zocker001 😉



  • zocker001 schrieb:

    Danke......
    ihr ratet mir also, lieber Variablen statt Makros zu verwenden. In meinem Buch werden allerdings keine negativen Bemerkungen angesprochen. Im Gegenteil:
    -gute Lesbarkeit
    -Änderungsfreundlichkeit
    -usw

    Hast Du ein C oder ein C++-Buch? Wenn C++ dann welches?



  • Ich habe ein C++ Buch mit dem Namen:
    "C++ lernen und professionell anwenden"

    Ciao
    euer zocker001 😉



  • zocker001 schrieb:

    Ich habe ein C++ Buch mit dem Namen:
    "C++ lernen und professionell anwenden"

    Hm, seltsam, ich dachte das sei recht gut...

    Naja, wenn Du ergänzende Literatur brauchst dann hol Dir einfach mal "Effektiv C++ programmieren", da wird auf derartige Do und DoNots eingegangen:
    Effektiv C++ programmieren | ISBN: 3827313058



  • Hi,

    das Buch "C++ lernen und professionell anwenden" ist schon gut, aber als totaler Anfänger begreife ich noch vieles nicht so genau (auch nach mehrmaligem Lesen). Wenn ich in manchen Dingen etwas unsicher bin, frage ich am besten bei euch nach oder hole mir nützliche Tipps und Ratschläge.

    Hast du das Buch "C++ lernen und professionell anwenden" etwa auch???
    Warst du damals auch ein Anfänger, wie ich es jetzt bin??? Hat das Buch dir geholfen???

    Also ich bin bis jetzt zufrieden, nur wenn man so ganz ins Detail geht, versteh ich halt gar nichts mehr...

    Nützt mir das Buch "Effektik C++ programmieren" etwas, wenn ich noch ziemlich unerfahren im Umgang mit C++ bin???

    Trotzdem, danke für den Kauftipp...

    Ciao
    euer zocker001 🙂



  • Nein, definitiv nicht. Mein vater hats im schrank und ich hab da mal reingeschaut das ist was für fortgeschrittene.


Anmelden zum Antworten