每当我尝试使用函数时,我都会得到一个编译器错误。

28 浏览
0 Comments

每当我尝试使用函数时,我都会得到一个编译器错误。

我正在学习C语言,最近我们学习了函数。自定义函数让我觉得很有趣,所以我决定写一个简单的程序来尝试一下函数的工作原理。以下是我的代码:\n

#include"stdio.h"
int main()
{
    func();
}
func()
{
    printf("这个程序使用了一个函数。");
}

\n我按下了“编译”按钮,然后出现了一个编译器错误。具体的提示信息是:\n

fpermissive]
func()
^
返回代码不为0

\n诊断结果并没有指出我写的代码中有错误,所以我无法找出我犯了什么错误。有人能帮我修复这个程序,并成功学会使用自定义函数吗?\n编辑:\n我忘记了函数的返回类型。我现在加上了,并修改了我的代码:\n

#include"stdio.h"
int main()
{
    func();
    return 0;
}
int func()
{
    printf("这个程序使用了一个函数。");
    return 0;
}

\n我再次按下编译按钮,然后得到了一个不同的错误信息。这个错误提示说:\n

在此作用域中未声明
func();
^
返回代码不为0

\n有人能帮我吗?

0
0 Comments

这个问题的出现是因为编译器在进入主函数main时没有遇到任何名为func();的函数。至少需要声明一个函数,即使不编写其函数体。

因此,如果希望在main()函数后编写其代码,你需要在main函数之前声明一个函数。

0
0 Comments

我在使用函数时一直收到编译器错误的消息。出现这个问题的原因是我忘记了在声明函数之前声明函数,并且没有在函数中指定返回类型。以下是解决这个问题的方法:

首先,在主函数之前声明函数,并在函数声明中指定返回类型。这样编译器就能正确地识别函数的存在和返回类型。

其次,尽量使用<stdio.h>而不是"stdio.h"。使用<>符号的好处是可以让预处理器只在包含路径中搜索外部头文件,而不搜索源代码目录。

此外,还需要注意函数的参数列表的声明方式是否正确。在声明函数时,参数列表应该使用void来指定参数为空。

在解决这个问题的过程中,我还遇到了一些其他的问题。比如,我没有声明一个空的参数列表,这是一个不好的做法。另外,我还遇到了在Android手机上使用CPPDroid时输入<>符号较为困难的问题。

总之,通过按照上述方法进行修改和调整,我最终成功解决了我在使用函数时遇到的编译器错误。

0
0 Comments

我尝试使用函数时一直遇到编译器错误的问题。这个问题的出现原因是语法错误。我的函数没有返回任何东西,所以需要在函数名前面加上void关键字。还需要在函数的括号之间放置void关键字。并且将函数定义移到main函数之前,或者像其他答案中提到的那样,在使用变量之前添加函数声明。

函数声明由以下组成:

1. 可选关键字extern

2. 函数的第一行,即返回的类型、名称和括号之间的参数

3. 分号

在你的情况下:extern void func(void);,或者简单地写作void func(void);

“将函数定义移到main函数之前。”啊,我已经考虑了很长时间了。我的计算机科学老师将函数定义放在main函数之后,所以我以为我们也可以这样做。无论如何,感谢你解决了这个问题。

或者添加一个前向声明,这在一般情况下都是一个好主意。你不需要移动函数定义。

对于学生来说,我个人的偏好是首先说使用的东西必须在使用之前定义。在一些练习之后,再介绍声明的概念。

0