我学习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
有人可以帮助我吗?
答案 0 :(得分:4)
您需要更好地研究语法。你的函数没有返回任何东西,所以你需要在名字前放一个空格。您还需要在函数的括号之间放置一个空格。并在main之前移动函数定义,或者,如其他答案所述,在使用变量之前添加函数声明。
函数声明由以下内容组成:
extern
在您的情况下: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)