Backslash "\"



  • Juten Tach!

    Wir sollen ein HTTP-Client und Server in C schreiben. Nun habe ich mich schlau gemacht wie so etwas in C ausshen könnte und bin dabei auf ein Beispiel gestossen.
    Dabei stellt sich mir die Frage bei folgendem:

    if (connect(sockfd, (struct sockaddr *)&their_addr, \
    sizeof(struct sockaddr)) == -1)

    was bedeuted dier "\" in dieser Anweisung und warum muß dazu das sizeof in eine andere Zeile verrückt werden?

    Danke für die Antwort

    🙂 [cpp]



  • nieselfriem schrieb:

    was bedeuted dier "\" in dieser Anweisung

    Ein "\" am Zeilenende heisst so viel wie "diese Zeile geht in der naechsten weiter".

    und warum muß dazu das sizeof in eine andere Zeile verrückt werden?

    Weil im Buch / auf dem Bildschirm / woauchimmer nicht genug Platz war 🙂 Ausserhalb eines Makros sollte das aber auch ohne den \ funktionieren.



  • Da ein Zeilenumbruch auch als Whitespacecharacter gilt, kann du außerhalb von
    Makros diesen Backslah weglassen, aber bei Makros wird der Backslash als Zeichen
    dafür verwendet, dass es in der nächsten Zeile weitergeht.

    Du könntest, wenn das kein Makro wäre es auch so schreiben:

    if 
    
    (            connect        
                (        sockfd            ,
             (
        struct sockaddr         *        )
        &their_addr
    ,
    
    sizeof                                    (
    
    struct
    
                         sockaddr                                )
    
    )                                     ==                             -1
    
    )
    


  • für strings ist es nützlich, auch ausserhalb von makros


Log in to reply