Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 控件到达非void的末尾,尽管有返回值_C - Fatal编程技术网

C 控件到达非void的末尾,尽管有返回值

C 控件到达非void的末尾,尽管有返回值,c,C,我在编译过程中收到一个错误: src/smtp.c:208:1:警告:控件到达非无效函数的结尾[-Wreturn type] 这是相关代码 int smtp_test_method(int socket) { int smtp_code; if ((smtp_code = smtp_speak(socket, "VRFY root\r\n")) == 501 || smtp_code

我在编译过程中收到一个错误:

src/smtp.c:208:1:警告:控件到达非无效函数的结尾[-Wreturn type]

这是相关代码

int smtp_test_method(int socket)
{
    int smtp_code;

    if ((smtp_code = smtp_speak(socket, "VRFY root\r\n")) == 501 ||
                                                smtp_code == 250 ||
                                                smtp_code == 252)
        return 0;
    else if ((smtp_code = smtp_speak(socket, 
                            "MAIL FROM:test@test.com\r\n")) == 250) {
        if ((smtp_code = smtp_speak(socket, "RCPT TO:root\r\n")) == 250 || 
                                                          smtp_code == 550)
            return 1;
    } else 
    return smtp_code;
}

其中,smtp_speak是一个函数,它将/EHLO连接到服务器,然后发送一条消息,以int形式返回响应代码。为什么我会收到此错误?

如果出现以下情况,则在第二次发送后需要返回语句:

我在每个返回的东西周围加上{};并自动重新格式化

结果显而易见

1使用自动格式化。 2在if/else块周围使用{}


并非此函数中的每个路径都有一个返回值。@user3408678的可能重复项现在问题没有意义了。我将其回滚,以便问题保留其值。
if ((smtp_code = smtp_speak(socket, "RCPT TO:root\r\n")) == 250 || smtp_code == 550)
   return 1;
**else
   return something;**
int smtp_test_method(int socket) {
  int smtp_code;

  if ((smtp_code = smtp_speak(socket, "VRFY root\r\n")) == 501
      || smtp_code == 250 || smtp_code == 252) {
    0;
  } else if ((smtp_code = smtp_speak(socket, "MAIL FROM:test@test.com\r\n"))
      == 250) {
    if ((smtp_code = smtp_speak(socket, "RCPT TO:root\r\n")) == 250
        || smtp_code == 550) {
      return 1;
    }
  } else {
    return smtp_code;
  }
  /* Missing return */
}