c语言mian函数位置问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 22:55:44
如果我这样写 就报错

#include <stdio.h>

void main(){
int a = 6 , b = 3, c;
c = add(a,b);
printf("%3d",c);
c = add(a,b);
printf("%3d",c);
}

int add (int x,int y){
int i = 2;
static int m = 0;
i = i + m + 1;
m = i + x + y;
return(m);
}

错误:--------------------Configuration: Test - Win32 Debug--------------------
Compiling...
Test.cpp
D:\C++\Test.cpp(6) : error C2065: 'add' : undeclared identifier
D:\C++\Test.cpp(12) : error C2373: 'add' : redefinition; different type modifiers
Error executing cl.exe.

Test.exe - 2 error(s), 0 warning(s)

可是 如果我这样写就没有错

#include <stdio.h>

int add (int x,int y){
int i = 2;
static int m = 0;
i = i + m + 1;
m = i + x + y;
return(m);
}

void main(){

楼主可以这样:
#include <stdio.h>

/*函数写在main()之前,要作声明*/
int add (int x,int y);

void main(){
int a = 6 , b = 3, c;
c = add(a,b);
printf("%3d",c);
c = add(a,b);
printf("%3d",c);
}

int add (int x,int y){
int i = 2;
static int m = 0;
i = i + m + 1;
m = i + x + y;
return(m);
}
====================================================
也可以这样:
#include <stdio.h>

/*函数写在main函数之前,就不用声明*/
int add (int x,int y){
int i = 2;
static int m = 0;
i = i + m + 1;
m = i + x + y;
return(m);
}

void main(){
int a = 6 , b = 3, c;
c = add(a,b);
printf("%3d",c);
c = add(a,b);
printf("%3d",c);
}
=================================================
还可以这样写:
#include <stdio.h>
void main(){
int add (int x,int y);/*