【求助求助】有没有高手帮我看下这个有关“文件包含”的程序设计~~~
c++吧
全部回复
仅看楼主
level 1
霞笔54B7 楼主
我真的不会用这个功能,,,可是就偏偏要规定使用这种东西!!!
2011年05月03日 14点05分 1
level 1
霞笔54B7 楼主
文件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 1
霞笔54B7 楼主
有没有人能帮帮我啊~~~
2011年05月03日 14点05分 3
level 7
同一目录下?
2011年05月03日 14点05分 4
level 1
霞笔54B7 楼主
恩恩。。
2011年05月03日 14点05分 5
level 7
应该没问题……切换到文件3.c,进行编译,即可……有问题的话,把错误说清楚……
2011年05月03日 14点05分 6
level 1
霞笔54B7 楼主
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
霞笔54B7 楼主
我想问亲的工作区是这样的么??
2011年05月03日 14点05分 9
level 1
霞笔54B7 楼主
那个我弄对了,,原来要用不同的工程的,,~~~,,,
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
level 11
哎。。
#pragma once
加到头文件里
2011年05月03日 14点05分 12
1