作者tropical72 (燃烧吧我的小宇宙)
看板C_and_CPP
标题Re: [问题] 外部函数使用时机
时间Sun Nov 1 19:55:24 2009
※ 引述《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)
1F:→ ilway25:1. 因为你把function的定义写在.h档 11/01 20:03
※ 编辑: tropical72 来自: 123.195.164.115 (11/01 20:03)
2F:推 QQ29:你只写void foo();这只有宣告 预设就是extern 11/01 20:05
※ 编辑: tropical72 来自: 123.195.164.115 (11/01 21:47)
3F:推 bzgibson:我也是把func的定义写在.h,只是我看到很多人的.h档 11/01 22:07
4F:→ bzgibson:里面把fun定义成 extern fuc(xxxx) 11/01 22:08