Re: [問題] 外部函數使用時機
※ 引述《bzgibson (B'z)》之銘言:
: 第一個問題:我想請問一下外部函數的使用時機??
: 例如:extern void func(xxxxx)
: 我專案裡的main呼叫A檔的函式
: 或者
: A檔呼叫main定義的函式
: 我都沒使用到extern,想請問哪種情況下才需要宣告成外部函式????
: 第二個問題:function pointer常用到哪個地方????好難使用阿XD
第一個問題我沒辦法回答你
我一直以為 function 寫在另一個 .h 後
只要 include 進來就可以用了,從沒有用過 extern 方式宣告
關於 function pointer:
以 "排序法" 而言,假設我的 sort function 長相為
void sort_func(int cnt, //排列個數
void* partern, // 要排列的陣列(看成 int* partern 可能會容易懂些)
bool up_down, // 升冪or降冪
bool (*pcompare_func)(void)); // 指向比較大小的函數指標
關於你的排序法,你要怎麼比較大小?
有時不是只有像 3>1 , -1<0 這樣的比較方式
如果你要比較的是 "結構裡的某個成員" 呢?
比如說我今天有一個 score 結構長得像這樣
struct score{
char name[20];
unsigned math;
unsigned chi;
unsigned eng;
unsigned total
};
那麼我比較的方式可能會是以此結構的 total (總分) 為排序依據,
所以我又寫了一個比較的 compare_func,
大概長這樣
bool compare_func(int cnt, struct score* data){
return (data[i].total > data[j].total);
}
寫好比較大小的函數之後,再丟給 sort_func 的第三個參數
關於相關的問題,你可以再多看一些相關資料
甚至到 MSDN 去查一下 sort 函數怎麼用你應該就會明白了
也可以先看一個簡單的例子:
http://0rz.tw/zsMYe
以上資訊若不全或有誤,歡迎更正
--
我期待 我等待
肩狹骨上的翅膀早些長出來
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.164.115
※ 編輯: tropical72 來自: 123.195.164.115 (11/01 19:58)
※ 編輯: tropical72 來自: 123.195.164.115 (11/01 20:02)
→
11/01 20:03, , 1F
11/01 20:03, 1F
※ 編輯: tropical72 來自: 123.195.164.115 (11/01 20:03)
推
11/01 20:05, , 2F
11/01 20:05, 2F
※ 編輯: tropical72 來自: 123.195.164.115 (11/01 21:47)
推
11/01 22:07, , 3F
11/01 22:07, 3F
→
11/01 22:08, , 4F
11/01 22:08, 4F
討論串 (同標題文章)