2016-06-09 11 views
-1

Ich habe gerade eine Seite über IPC gelesen: Message Queue, als ich auf den folgenden Codeabschnitt stieß.Semikolon innerhalb der Anweisung

#include <sys/ipc.h>; 
#include <sys/msg.h>; 

... 


key_t key; /* key to be passed to msgget() */ 
int msgflg /* msgflg to be passed to msgget() */ 
int msqid; /* return value from msgget() */ 

... 
key = ... 
msgflg = ... 

if ((msqid = msgget(key, msgflg)) == &ndash;1) //*****Semicolon inside IF***** 
    { 
    perror("msgget: msgget failed"); 
    exit(1); 
    } else 
    (void) fprintf(stderr, &ldquo;msgget succeeded"); 
... 

Der obige Code veranschaulicht die Funktion msgget(). Was auch immer, im obigen Code ist das Semikolon innerhalb der If-Anweisung von der Syntax erlaubt? Hat es eine Bedeutung?

+0

'' – ist ein HTML-Sonderzeichen. – MikeCAT

+0

'– 1' bedeutet '-1' und' “ 'ist' "'. – Himanshu

+1

Sieht aus wie eine Art seltsamer Kopier- und Einfügefehler, wenn die Seite erstellt wurde, es ist erwähnenswert, dass '–' ist '-' (nicht '-') und' “ 'ist' '' (nicht '' '), also selbst wenn diese dereferenziert wurden, wäre es immer noch kein gültiger Code. – user657267

Antwort

3

Das sind HTML-Sonderzeichen und sie sind kein Teil von C++.
Dies war ein Transpositionsfehler.
sollte der Code lesen:

if ((msqid = msgget(key, msgflg)) == -1) 
    { 
    perror("msgget: msgget failed"); 
    exit(1); 
    } else 
    (void) fprintf(stderr, "msgget succeeded"); 
Verwandte Themen