Re: [問題] VC6.0 function連結問題

看板C_and_CPP (C/C++)作者 (mouse)時間16年前 (2009/04/27 12:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《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
文章代碼(AID): #19zJAJxW (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19zJAJxW (C_and_CPP)