C代码,似乎是错误的,不知道为什么

时间:2014-08-21 08:09:08

标签: c compilation terminal ubuntu-14.04

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

4 个答案:

答案 0 :(得分:1)

&#39;返回号码&#39;在函数changenum

答案 1 :(得分:1)

control reaches end of non-void function通常是一个警告,但由于您正在使用-Werror进行编译,因此所有警告都会被视为错误:请参阅the gcc options documentation

出现警告是因为您没有在定义为intnon-void)的函数中返回值:mainchangenum函数都被定义为返回int,但您没有在其中添加return语句。

答案 2 :(得分:0)

您宣布您的功能为int,但您不会返回任何内容。这是未定义的行为,您的编译器会发出警告。

船长明显,一遍又一遍。

答案 3 :(得分:0)

你说返回值应该是int(控制到达非void函数的结尾)并且没有return语句。

在每个函数的末尾添加一个返回0(或另一个有意义的int值)