C 控件到达非void的末尾,尽管有返回值
我在编译过程中收到一个错误: src/smtp.c:208:1:警告:控件到达非无效函数的结尾[-Wreturn type] 这是相关代码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
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 */
}