if语句中的分号

时间:2016-06-09 07:03:47

标签: c++ c

我正在阅读有关IPC:Message Queue的页面,当我遇到以下代码段时。

#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语句中的分号?它有什么意义吗?

1 个答案:

答案 0 :(得分:4)

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

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