每当我尝试使用函数

时间:2017-11-05 07:02:39

标签: c function compiler-errors

我学习C,最近我们被教过功能。用户定义的函数让我感到非常迷人,因此我决定编写一个简单的程序来试验函数的工作原理。这是我的代码:

#include"stdio.h"

int main()
{
    func();
}
func()
{
    printf("This program uses a function.");
}

我按下"编译"我得到了一个compliler错误。它给我的确切信息是:

fpermissive]
func()
^
Return code is not 0

诊断并不意味着我编写的代码中存在错误,因此我无法找出错误的位置。有人可以帮我修复这个程序,还能成功学习如何使用用户定义的函数吗?

修改

我忘了提到函数的返回类型。我现在就这样做了,这是我修改过的代码:

#include"stdio.h"

int main()
{
    func();
    return 0;
}
int func()
{
    printf("This program uses a function.");
    return 0;
}

我再次按下编译,并收到不同的错误消息。这个说:

was not declared in this scope
func();
^
Return code is not 0

有人可以帮助我吗?

5 个答案:

答案 0 :(得分:4)

您需要更好地研究语法。你的函数没有返回任何东西,所以你需要在名字前放一个空格。您还需要在函数的括号之间放置一个空格。并在main之前移动函数定义,或者,如其他答案所述,在使用变量之前添加函数声明。

函数声明由以下内容组成:

  1. 可选关键字extern
  2. 函数的第一行,即返回的类型,名称,括号之间的参数
  3. 分号
  4. 在您的情况下:extern void func(void);,或只是void func(void);

答案 1 :(得分:2)

您需要处理两件事:(a)在i <= j之前声明func(),(b)提及main()的返回类型。

func()

答案 2 :(得分:1)

发生错误是因为编译器没有遇到任何名为

的函数
func();

进入主要功能时。如果不写它的身体,你至少需要声明一个函数。

所以,如果你想在main()之后编写代码,你必须在main之前声明一个函数

答案 3 :(得分:0)

您缺少func()的返回类型。请看一下定义函数的方法的语法。

答案 4 :(得分:0)

lis=[4,4,1,5,2,4,3,4,2,0]
last_pos=len(lis)-1
pos = 0+lis[0]

def kauhop(lis,pos):
    if (pos==last_pos):
        print("found")
        exit;
    else:
        new_pos = pos+lis[pos]
        if(new_pos <= last_pos):
            kauhop(lis,new_pos)
        else:
            print("Not found")

kauhop(lis,pos)