我有这个代码,编译器给了我下一个错误:
functions.c:12:1:警告:控制到达非void函数的结尾 [-Wreturn型] }
代码:
#include <stdlib.h>
#include <time.h>
int myrand(){
srand(time(NULL));
int r = rand()%2;
}
此函数从另一个.c文件调用:
printf("%d here \n", myrand());
答案 0 :(得分:0)
添加一个return语句。
int myrand(){
srand(time(NULL));
int r = rand()%2;
return r;
}
没有它,&#34;随机&#34;您打印的值不是来自rand()
,而是来自省略return语句的未定义行为。 [嗯,从技术上讲,取决于架构,rand
的返回值可以在寄存器中传播]
虽然c标准可能允许在不要求硬错误的情况下省略它,但这仍然是不明智的。
答案 1 :(得分:0)
我经过多次研究和阅读手册后发现了错误,结果控制到了无效功能的终点。
int myrand(){
srand(time(NULL));
int r = rand()%2;
return r; // add this
}