C代码,似乎是错的,don';我不知道为什么

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("

我正在使用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("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