C代码,似乎是错的,don';我不知道为什么
我正在使用Ubuntu14.04,我正在尝试编译一个C文件(我是一个乞丐),但它说代码中有一些错误 以下是文件:C代码,似乎是错的,don';我不知道为什么,c,compilation,terminal,ubuntu-14.04,C,Compilation,Terminal,Ubuntu 14.04,我正在使用Ubuntu14.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("
#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);
}
}
您将函数声明为返回
int
,但不返回任何内容。这是未定义的行为,编译器会善意地警告您
很明显,已结束。函数changenum中的“返回号”
控件到达非无效函数的末尾
通常是一个警告,但由于您是使用-Werror
编译的,所有警告都被视为错误:请参阅
出现此警告是因为您没有在定义为
int
(non void
)的函数中返回值:main
和changenum
函数都定义为返回int
,但是您没有在其中放置return
语句。您是说返回值应该是int(控件到达非void函数的末尾),并且没有return语句
在每个函数的末尾添加一个返回0(或另一个有意义的int值)为什么不搜索该错误,这一点非常清楚。错误消息表示您正在离开声明为返回值的函数,但您没有这样做(返回的值为)。为什么人们总是回答明显重复和简单的问题?哈哈。谢谢,我现在明白了。对这个问题的评论是对的。这很容易通过谷歌搜索找到
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