level 1
我真的不会用这个功能,,,可是就偏偏要规定使用这种东西!!!
2011年05月03日 14点05分
1
level 1
文件3.c :
#include<stdio.h>
#include "f1.c"
main()
{
int choice;
double R,H,V;
do
{
printf(" ====功能选项====\n");
printf(" 1--计算球体体积 \n");
printf(" 2--计算圆柱体积 \n");
printf(" 3--计算圆锥体积 \n");
printf(" 0--退 出 \n");
printf("请选择: ");
scanf("%d",&choice);
switch(choice)
{
case 1: printf("请输入球的半径:");
scanf("%lf",&R);V=vol_ball(R);
printf("球体积为:%.2f\n",V);break;
case 2:printf("请输入圆柱的底圆半径和高:");
scanf("%lf%lf",&R,&H);V=vol_cylind(R,H);
printf("圆柱体积:%.2f\n",V);break;
case 3:printf("请输入圆锥的底圆半径和高:");
scanf("%lf%lf",&R,&H);
V=vol_cone(R,H);
printf("圆锥体积:%.2f\n",V);break;
case 0:break;
}
}
while(choice!=0);
printf("谢谢使用! \n");
return 0;
}
文件f1.c :
#include<stdio.h>
#define PI 3.1415926
double vol_ball(double r)
{
return (4.0/3.0*PI*r*r*r);
}
double vol_cylind(double r,double h)
{
return (PI*r*r*h);
}
double vol_cone(double r,double h)
{
return (3.1415926*r*r*h/3.0);
}
这两个是在一个工程里面的,,,可是不能引用啊
2011年05月03日 14点05分
2
level 7
应该没问题……切换到文件3.c,进行编译,即可……有问题的话,把错误说清楚……
2011年05月03日 14点05分
6
level 1
f1.obj : error LNK2005: _vol_ball already defined in 3.obj
f1.obj : error LNK2005: _vol_cylind already defined in 3.obj
f1.obj : error LNK2005: _vol_cone already defined in 3.obj
Debug/3.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.
3.exe - 1 error(s), 0 warning(s)
这个是错误,,是说函数已经定义的意思么??
2011年05月03日 14点05分
7
level 7
我编了一下,没有问题……你重新建一个工程,在写两个文件,内容就是你给的这些,试试……
2011年05月03日 14点05分
8
level 1
那个我弄对了,,原来要用不同的工程的,,~~~,,,
2011年05月03日 14点05分
10
level 7
VC的话,应该如此,不行的话,换个IDE,或者这样试试,弄三个文件?
f1.h (HEADER FILES)
#ifndef F1_H
#define F1_H
double vol_ball(double r);
double vol_cylind(double r,double h);
double vol_cone(double r,double h);
#endif
f1.c (SOURCE FILES)
#include<stdio.h>
#include"f1.h"
#define PI 3.1415926
double vol_ball(double r)
{
return (4.0/3.0*PI*r*r*r);
}
double vol_cylind(double r,double h)
{
return (PI*r*r*h);
}
double vol_cone(double r,double h)
{
return (3.1415926*r*r*h/3.0);
}
3.c (SOURCE FILES)
#include<stdio.h>
#include "f1.c"
main()
{
int choice;
double R,H,V;
do
{
printf(" ====功能选项====\n");
printf(" 1--计算球体体积 \n");
printf(" 2--计算圆柱体积 \n");
printf(" 3--计算圆锥体积 \n");
printf(" 0--退 出 \n");
printf("请选择: ");
scanf("%d",&choice);
switch(choice)
{
case 1: printf("请输入球的半径:");
scanf("%lf",&R);V=vol_ball(R);
printf("球体积为:%.2f\n",V);break;
case 2:printf("请输入圆柱的底圆半径和高:");
scanf("%lf%lf",&R,&H);V=vol_cylind(R,H);
printf("圆柱体积:%.2f\n",V);break;
case 3:printf("请输入圆锥的底圆半径和高:");
scanf("%lf%lf",&R,&H);
V=vol_cone(R,H);
printf("圆锥体积:%.2f\n",V);break;
case 0:break;
}
}
while(choice!=0);
printf("谢谢使用! \n");
return 0;
}
2011年05月03日 14点05分
11