longfeix86 发表于 2012-9-3 19:15:12

C 语言求助:请大侠们来参谋参谋

本帖最后由 longfeix86 于 2012-9-3 19:29 编辑

首先我定义了一个指向函数的数组指针KFunTbl[],定义在flash中
code void(code*FunTbl[])() ={fun1, fun2, fun3, fun4, fun5};
fun1-5分别是五个函数,比如:
void fun1 (void)
{
   int a=5000;
   a--;
}

先在想定义一个指针 指向这个指针数组里的成员,应该怎么定义这个指针??请大侠们提点建议。。。。不胜感激

fshunj 发表于 2012-9-3 19:23:54

是指针数组!

longfeix86 发表于 2012-9-3 19:30:14

fshunj 发表于 2012-9-3 19:23 static/image/common/back.gif
是指针数组!

定义一个指针 指向这个指针数组里的成员,该怎么定义?

fshunj 发表于 2012-9-3 20:41:09

longfeix86 发表于 2012-9-3 19:30 static/image/common/back.gif
定义一个指针 指向这个指针数组里的成员,该怎么定义?

如果这个指针数组里面的元素是一个指向无参无返回的函数的指针的话,就是这样定义:void (*p)(void) = FunTbl;

jetlib 发表于 2012-9-4 07:44:26

这样写太繁琐,建议用typedef来新定义类型:
typedef void (*PFNVOID)(void);
code PFNVOID pfnTbl[] = {func1,func2,func3...};

PFNVOID pfnTest = pfnTbl;

richards 发表于 2012-9-4 07:57:59

这个特别呢。还真没这样用过。

himm007 发表于 2012-9-4 16:01:26

jetlib 发表于 2012-9-4 07:44 static/image/common/back.gif
这样写太繁琐,建议用typedef来新定义类型:
typedef void (*PFNVOID)(void);
code PFNVOID pfnTbl[] = {fu ...

5楼是通用的写法。

jz701209李 发表于 2012-9-4 22:18:22

学习学习,谢谢

eduhf_123 发表于 2012-9-4 22:20:43

5楼正解。

longfeix86 发表于 2012-9-8 14:54:31

jetlib 发表于 2012-9-4 07:44 static/image/common/back.gif
这样写太繁琐,建议用typedef来新定义类型:
typedef void (*PFNVOID)(void);
code PFNVOID pfnTbl[] = {fu ...

确实是应该这样,程序已经调通了,感谢大侠帮忙
页: [1]
查看完整版本: C 语言求助:请大侠们来参谋参谋