2016-06-09 93 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");