我正在使用ubuntu 14.04,我正在尝试编译一个C文件(我是一个初学者),但它说代码中有一些错误。
这是文件:
#include<stdio.h>
int changenum(int number);
int main() {
int inital_number = 2;
changenum(inital_number);
}
int changenum(int number) {
if (number<3) {
printf("The number %d is smaller than 3!", number);
}
}
以下是终端的说法:
hagaymosko@hagaymosko-Inspiron-5421:~/CCPP/HelloWorld$ gcc -Wall -W -Werror somefile.c -o MyFirstCFile
somefile.c: In function ‘main’:
somefile.c:9:1: error: control reaches end of non-void function [-Werror=return-type] }
^
somefile.c: In function ‘changenum’:
somefile.c:17:1: error: control reaches end of non-void function [-Werror=return-type]
}
^
cc1: all warnings being treated as errors
答案 0 :(得分:1)
&#39;返回号码&#39;在函数changenum
答案 1 :(得分:1)
control reaches end of non-void function
通常是一个警告,但由于您正在使用-Werror
进行编译,因此所有警告都会被视为错误:请参阅the gcc options documentation。
出现警告是因为您没有在定义为int
(non-void
)的函数中返回值:main
和changenum
函数都被定义为返回int
,但您没有在其中添加return
语句。
答案 2 :(得分:0)
您宣布您的功能为int
,但您不会返回任何内容。这是未定义的行为,您的编译器会发出警告。
船长明显,一遍又一遍。
答案 3 :(得分:0)
你说返回值应该是int(控制到达非void函数的结尾)并且没有return语句。
在每个函数的末尾添加一个返回0(或另一个有意义的int值)