用XCode编译C程序

用XCode编译C程序,c,xcode,C,Xcode,我正在尝试使用下面键入的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) } 1)#包括 2) int main() 3) { 4) printf(“

我正在尝试使用下面键入的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)  }
1)#包括
2) int main()
3)   {
4) printf(“你好,世界!\n”);
5) func();
6) 返回0;
7)   }
8) void func()
9)   {
10) printf(“xxxx”);
11)  }
在第5行,我收到警告“c99中func的隐式声明无效”,在第8行,我收到错误“func的冲突类型”

请告知 谢谢,

您在声明或定义之前调用了
func()
,这就是原因


添加
void func()在main之前

您需要声明
func()
在使用它之前(在main中),否则它被声明为返回
int
的函数,当编译器到达第8行时,它会看到返回
void
的同一函数的不同声明

#include <stdio.h>
void func(void);
int main ()
#包括
无效函数(void);
int main()

好吧,错误消息会准确地告诉您出了什么问题。必须首先在同一源代码单元或头文件中声明正在使用的函数

如果尚未声明
func()
,编译器将假定
int
结果

第一个错误表示在使用它之前应该声明
func()

void func(void);

int main()
{
    etc...    

第二个错误告诉您,
func()
毕竟不会返回
int
。如果您先声明了
func()
,这两个错误就不会发生。

好吧,在旧的、非常旧的C中,这是不必要的,IIRC。