作者mouse0411 (mouse)
看板C_and_CPP
标题Re: [问题] VC6.0 function连结问题
时间Mon Apr 27 12:20:34 2009
※ 引述《mouse0411 (mouse)》之铭言:
: 小弟有个问题想请问大大们
: 我有一个project
: 这个project里面有"main.c"、"a.c"、"b.c"、"abc.h"
: main.c大约如下
: #include <stdio.h>
: #include "abc.h"
: void main()
: {
: .
: .
: .
: a(r1,r2);
: .
: .
: }
: a.c大约如下
: #include <stdio.h>
: #include "abc.h"
: void a(int *r3,int *r4)
: {
: double s,r;
: int n;
: .
: .
: s=sum(&r,n);
: b(r3,r4);
: .
: .
: }
: b.c大约如下
: #include <stdio.h>
: #include "abc.h"
: void b(int *r5,int *r6)
: {
: double r,s;
: int n;
: .
: .
: s=sun(&r,n)
: .
: .
: }
: abc.h大约如下
: #include <stdio.h>
: double sum(double *p,int n)
: {
: double summery=0;
: .
: .
: return summery;
: }
: 问题来了
: 当我compiler时都没有问题
: 但是一执行的时候就会出现
: a.obj:error LNK2005:_sum aleady defined in main.obj
: b.obj:error LNK2005:_sum aleady defined in main.obj
: 後来我把"a.c"与"b.c"的#inclde "abc.h"拿掉後就可以执行
: 但是"b.c"中"sum"出来的结果就错了??
: 想请问大大们问题所在??
: 感谢大大们有耐心看完^^
谢谢大大们的回答
小弟查了一下#ifndef的意思跟用法
将"abc.h"改为
#ifndf ABC_H
#define ABC_H
#include <stdio.h>
double sum(double *p,int n)
{
double summery=0;
.
.
return summery;
}
#endif
结果执行後的问题还是一样
因为小弟刚刚学c语言
所以想请问大大们小弟是错在哪里??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.166.98.97