2016-06-09 58 views
-1

我正在读一个关于IPC的页面:Message Queue,那是当我遇到以下代码段时。if语句里面的分号

#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"); 
... 

上面的代码说明了msgget()函数。无论如何,在上面的代码中,If语句中的分号可以通过语法来实现吗?它有什么含义?

+0

''–是一个HTML特殊字符。 – MikeCAT

+0

'– 1''意味着'-1'和'“'''' – Himanshu

+1

当页面被创建时看起来像是某种奇怪的复制和粘贴错误,值得指出'–'是'-' '''和'“''''(不是'''),所以即使这些被解除引用,它仍然不会是有效的代码。 – user657267

回答

3

这些是HTML特殊字符,它们不是C++的一部分。
这是一个换位错误。
代码应为:

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