C语言高手帮忙看看我这个程序错在哪里???

来源:百度知道 编辑:UC知道 时间:2024/06/18 18:56:21
#include<stdio.h>
void main()
{int a;
a=0;
data();
a=a+100;
printf("%d\n",a);
}
data()
{int a;
a=-199;
printf("%d\n",a);
}

--------------------Configuration: afdsafafd - Win32 Debug--------------------
Compiling...
a.cpp
D:\Program Files\编程软件\Visual C++ 6.0\MSDev98\MyProjects\afdsafafd\a.cpp(5) : error C2065: 'data' : undeclared identifier
D:\Program Files\编程软件\Visual C++ 6.0\MSDev98\MyProjects\afdsafafd\a.cpp(10) : error C2373: 'data' : redefinition; different type modifiers
D:\Program Files\编程软件\Visual C++ 6.0\MSDev98\MyProjects\afdsafafd\a.cpp(13) : warning C4508: 'data' : function should return a value; 'void' return type assumed
执行 cl.exe 时出错.

afdsafafd.exe - 1 error(s), 0 warning(s)

C程序里所有的函数在使用前都要在main的前面声明,或者把整个定义放在main的前面,否则main无法识别函数,也就无法编译。你可以在main的前面加上data();,或者把main和data互换一下位置。最好在data()前面也加上void,因为它并没有返还任何东西。

把data函式放前面
#include<stdio.h>
void data()
{int a;
a=-199;
printf("%d\n",a);
}
void main()
{int a;
a=0;
data();
a=a+100;
printf("%d\n",a);
}

------------------------------------------
或是放main后面,但前面要先宣告有一函式
免得main()中的函式呼叫往前找,找不到。

#include<stdio.h>
void data();//宣告的确有一函式,他可能放main()后头
void main()
{int a;
a=0;
data();
a=a+100;
printf("%d\n",a);
}
void data()
{int a;
a=-199;
printf("%d\n",a);
}