看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC2010 問題(Question): 我有一個主module跟兩個副module 在主程式呼叫兩個副程式(不同的CPP檔) 副程式裡面各有一個叫code的function 但是兩者內容不同(只有名稱相同) 在呼叫時編譯器一直顯示已經定義過了 怎麼會這樣? 我該怎麼改? 程式碼(Code):(請善用置底文網頁, 記得排版) #include<stdlib.h> #include<stdio.h> void A(); void B(); int main(){ A(); B(); return 0; } -------- A.cpp #include<stdlib.h> #include<stdio.h> void code(FILE *fw); void A(){ fw=fopen("testA.txt","w"); code(fw); fclose(fw); } void code(FILE *fw){ fprintf("This is A.\n"); } -------- B.cpp #include<stdlib.h> #include<stdio.h> void code(FILE *fw); void B(){ fw=fopen("testB.txt","w"); code(fw); fclose(fw); } void code(FILE *fw){ fprintf("This is B.\n"); } 先謝了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.136.146.114
suhorng:code改成static 02/12 18:41
對吼~教過沒在用都忘了 感謝解答
testPtt:就把名稱改不同阿 02/12 19:24
我知道可以改不一樣名稱 但是如果今天我有100個程式 不可能設成code1~code100阿 ※ 編輯: jacky1989 來自: 140.136.146.114 (02/12 20:15) ※ 編輯: jacky1989 來自: 140.136.146.114 (02/12 20:17)
diabloevagto:你可以把兩個不同的文字當作參數傳進去 02/12 20:49
diabloevagto:試著重複使用 02/12 20:50
我了解你的意思 這只是我po上來示意的 實際上A與B裡面是天差地別 無法參數化 ※ 編輯: jacky1989 來自: 140.136.146.114 (02/12 21:46)
diabloevagto:天差地別的功能你名字弄成一樣就有問題了... 02/12 22:14
diabloevagto:如果你有c++的話可以用多型,純c我就不知道了 02/12 22:14
有特殊用途所以才會弄成一樣名稱 我是純C 所以無法多型 而且我也只會純C C++怎樣都學不會..... ※ 編輯: jacky1989 來自: 140.136.146.114 (02/12 22:33)
EdisonX:改成 static void code ? 02/12 22:59
EdisonX:@@ 一樓推了 02/12 22:59
littleshan:純C的話就用function pointer去兜看看吧 02/12 23:32
barfat:回錯篇,抱歉 !! 02/13 12:28
barfat:哈 , 沒回錯篇 , 我 blog 有相關描述,可以看看 !! 02/13 12:33
好的,會去參考一下
descent:有什麼特殊需求需要這麼做嗎 02/13 21:37
如果A是要輸出 今天天氣很好 B是要輸出 這地板很滑 這如何參數化呢?
crazydogx:function pointer + 1 02/13 22:20
I will try it. ※ 編輯: jacky1989 來自: 118.233.66.46 (02/13 23:14)