每当我尝试使用函数时,我都会得到一个编译器错误。
每当我尝试使用函数时,我都会得到一个编译器错误。
我正在学习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有人能帮我吗?
我在使用函数时一直收到编译器错误的消息。出现这个问题的原因是我忘记了在声明函数之前声明函数,并且没有在函数中指定返回类型。以下是解决这个问题的方法:
首先,在主函数之前声明函数,并在函数声明中指定返回类型。这样编译器就能正确地识别函数的存在和返回类型。
其次,尽量使用<stdio.h>
而不是"stdio.h"。使用<>
符号的好处是可以让预处理器只在包含路径中搜索外部头文件,而不搜索源代码目录。
此外,还需要注意函数的参数列表的声明方式是否正确。在声明函数时,参数列表应该使用void
来指定参数为空。
在解决这个问题的过程中,我还遇到了一些其他的问题。比如,我没有声明一个空的参数列表,这是一个不好的做法。另外,我还遇到了在Android手机上使用CPPDroid时输入<
和>
符号较为困难的问题。
总之,通过按照上述方法进行修改和调整,我最终成功解决了我在使用函数时遇到的编译器错误。
我尝试使用函数时一直遇到编译器错误的问题。这个问题的出现原因是语法错误。我的函数没有返回任何东西,所以需要在函数名前面加上void关键字。还需要在函数的括号之间放置void关键字。并且将函数定义移到main函数之前,或者像其他答案中提到的那样,在使用变量之前添加函数声明。
函数声明由以下组成:
1. 可选关键字extern
2. 函数的第一行,即返回的类型、名称和括号之间的参数
3. 分号
在你的情况下:extern void func(void);
,或者简单地写作void func(void);
。
“将函数定义移到main函数之前。”啊,我已经考虑了很长时间了。我的计算机科学老师将函数定义放在main函数之后,所以我以为我们也可以这样做。无论如何,感谢你解决了这个问题。
或者添加一个前向声明,这在一般情况下都是一个好主意。你不需要移动函数定义。
对于学生来说,我个人的偏好是首先说使用的东西必须在使用之前定义。在一些练习之后,再介绍声明的概念。