Aussage aus einem C Buch ist mir nicht klar



  • Hallo Community,

    im entsprechenden Abschnitt

    http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/009_c_funktionen_021.htm

    des openbooks steht folgendes über inline:
    **
    Der Nachteil an der inline-Funktion, die mit static deklariert ist, ist, dass Sie hierbei keine veränderbaren Speicherobjekte mit statischer Lebensdauer verwenden können.

    In der Praxis wird daher die Deklaration (!) einer inline-Funktion in eine externe Headerdatei ohne inline geschrieben und zusätzlich mit dem Schlüsselwort extern versehen, um so der kompletten Übersetzungseinheit zur Verfügung zu stehen, die diese Headerdatei inkludiert.**

    1. Muss man denn unbedingt das static zur inline-Funktion dazuangeben? Reicht es nicht, wenn man einfach darauf achtet, dass die Funktion auch in selbiger Datei definiert wird?

    2. Den Rest der Aussage mit den veränderbaren Speicherobjekten und dem Absatz darunter habe ich auch nicht wirklich verstanden. Was meint der Autor damit? Sind diese veränderbaren Speicherobjekte Variablen? Mir leuchtet gerade nicht ein, warum diese nicht in diesem Fall verwendet werden können.

    lieben Gruß



  • Obligatorischer Hinweis auf https://www.c-plusplus.net/forum/272350



  • cilker schrieb:

    1. Muss man denn unbedingt das static zur inline-Funktion dazuangeben?

    Nur wenn du willst, dass niemand sonst die Funktion nutzen kann. Andernfalls ist sie für den Linker global sichtbar und das ist eben manchmal nicht gewollt.

    cilker schrieb:

    Reicht es nicht, wenn man einfach darauf achtet, dass die Funktion auch in selbiger Datei definiert wird?

    nee, siehe:

    // datei - 1
    void func(){...}
    // datei - 2
    extern void func();
    func();  // geht!
    

    versus ...

    // datei - 1
    static void func(){...}
    // datei - 2
    extern void func();
    func();  // linker error!
    


  • Danke an Fricky und SG1.
    Ich werde das Buch trotzdem einmal durchlesen, aber aus dem Buch nicht mehr Fragen stellen 🙂


  • Mod

    cilker schrieb:

    Ich werde das Buch trotzdem einmal durchlesen, aber aus dem Buch nicht mehr Fragen stellen 🙂

    Das ist nicht empfehlenswert. Zum einen ist es sehr viel schwieriger, etwas wieder zu vergessen als es gar nicht erst zu lernen. Und du wirst alles was in dem Buch steht wieder vergessen müssen. Zum anderen bemerkst du den Unsinn nicht einmal, wenn du keine Fragen stellst.

    PS: Als Faustregel solltest du alles ignorieren, was Fricky667 sagt (nicht nur in diesem Thread, sondern allgemein). Seine Aussagen in diesem Thread sind ... technisch korrekt. Aber verfehlen vollkommen den Sinn von static inline zu erklären.



  • SeppJ schrieb:

    was in dem Buch steht wieder vergessen müssen. Zum anderen bemerkst du den Unsinn nicht einmal, wenn du keine Fragen stellst.

    Was aber auch nicht heißen soll, dass du doch Fragen zu Pfuscher-JWolf stellen oder hiesigen Fricky-Schrott glauben sollst.



  • Eigentlich ging es mir darum meine C-Kenntnisse wieder etwas aufzufrischen. Bin also kein absouluter Neuling. Insofern meine ich beurteilen zu können, dass das Buch selbst nicht ganz so schlecht ist, wie ihr meint. Zudem gibt es Kapitel im hinteren Teil, die sehr interessant klingen (wie CGI usw.). Aber ich werde das Buch mit euren Ratschlägen doch wohl eher mit Bedacht lesen und nicht alles glauben was der Autor erzählt :).

    Zumal gibt es ein wirklich gutes Review zu diesem Buch, der die Mängel aufzeigt und noch aufführt was darin nicht behandelt wurde usw.

    http://www.schellong.de/htm/rezjw.htm



  • cilker schrieb:

    Insofern meine ich beurteilen zu können, dass das Buch selbst nicht ganz so schlecht ist, wie ihr meint.

    Auf eigene Gefahr. Du wurdest gewarnt. Die Liste der Fehler und Mängel (dein Link) ist recht groß.



  • Wutz schrieb:

    SeppJ schrieb:

    was in dem Buch steht wieder vergessen müssen. Zum anderen bemerkst du den Unsinn nicht einmal, wenn du keine Fragen stellst.

    Was aber auch nicht heißen soll, dass du doch Fragen zu Pfuscher-JWolf stellen oder hiesigen Fricky-Schrott glauben sollst.

    Mach meinen Kumpel Jürgen nicht an, du Freak! 😃



  • Eigentlich ging es mir darum meine C-Kenntnisse wieder etwas aufzufrischen. Bin also kein absouluter Neuling. Insofern meine ich beurteilen zu können, dass das Buch selbst nicht ganz so schlecht ist, wie ihr meint.

    https://www.amazon.de/von-bis-umfassende-Handbuch-Computing/product-reviews/3836214113/ref=cm_cr_dp_d_hist_1?ie=UTF8&filterByStar=one_star&reviewerType=all_reviews#reviews-filter-bar
    Noch Fragen ?



  • Ja ich kenn diese Rezension Bitte ein Bit 🙂 🙂


Anmelden zum Antworten