我正在尝试使用在
下面键入的XCode运行一个非常简单的C程序1) #include <stdio.h>
2) int main ()
3) {
4) printf("Hello, World!\n");
5) func();
6) return 0;
7) }
8) void func()
9) {
10) printf("xxxx");
11) }
在第5行,我收到警告“在c99中隐式声明func无效”,在第8行我收到错误“func的冲突类型”
请指教 谢谢,
答案 0 :(得分:2)
你需要在使用之前声明func();
(在main中),否则它被声明为返回int
的函数,当编译器到达第8行时,它会看到不同的声明返回void
的相同函数。
#include <stdio.h>
void func(void);
int main ()
答案 1 :(得分:1)
那么,错误消息会告诉您究竟出了什么问题。必须首先在相同的源代码单元或头文件中声明正在使用的函数。
如果尚未声明func()
,则编译器会假定int
结果。
第一个错误说你应该在使用之前声明func()
:
void func(void);
int main()
{
etc...
第二个错误告诉您func()
毕竟不会返回int
。如果您先声明func()
,那么两个错误都不会发生。
答案 2 :(得分:0)
您在声明或定义之前调用了func()
,这就是原因。
在主
之前添加void func();