用XCode编译C程序
我正在尝试使用下面键入的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(“
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。