Re: [問題] VC6.0 function連結問題
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章