C 编译器错误:控件到达非void函数的末尾
我有这段代码,编译器给了我下一个错误: 函数c:12:1:警告:控件到达非无效函数的末尾 [-Wreturn类型] } 代码:C 编译器错误:控件到达非void函数的末尾,c,compiler-errors,C,Compiler Errors,我有这段代码,编译器给了我下一个错误: 函数c:12:1:警告:控件到达非无效函数的末尾 [-Wreturn类型] } 代码: #include <stdlib.h> #include <time.h> int myrand(){ srand(time(NULL)); int r = rand()%2; } 添加一个return语句 int myrand(){ srand(time(NULL)); int r = rand()%2
#include <stdlib.h>
#include <time.h>
int myrand(){
srand(time(NULL));
int r = rand()%2;
}
添加一个return语句
int myrand(){
srand(time(NULL));
int r = rand()%2;
return r;
}
没有它,您打印的“随机”值不是来自rand()
,而是来自省略return语句的未定义行为。[从技术上讲,根据体系结构,rand
的返回值可以在寄存器中传播]
虽然标准可能允许在不要求硬错误的情况下忽略它,但这仍然是不明智的。我在大量研究和阅读手册后发现了错误,结果证明控制达到了非无效功能的末端
int myrand(){
srand(time(NULL));
int r = rand()%2;
return r; // add this
}
int myrand(){…}
是一个返回int
的函数。编译器需要一个return
语句,如returnr
也许函数应该返回一个int
值。恭喜。你对这些披露有什么疑问吗?非常感谢,我自己看到了这个错误)谢谢,看到了这个)
int myrand(){
srand(time(NULL));
int r = rand()%2;
return r; // add this
}