标题:怎样用函数指针 指向一个静态函数
只看楼主
duzhiming
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2012-2-13
得分:0 
回复 2楼 rjsp

taskchange(fp,task_0(33));在VC下运行过的
task_0函数被解释为函数指针 我想能不能连参数一起传递过去 在VC试了一次 还可以   虽然还不是很理解C的参数传递是传递参数的副本
这样写可以用就先这样呗 等理解了 就好说了
2013-04-03 14:55
duzhiming
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2012-2-13
得分:0 
回复 2楼 rjsp
那我怎样才可以在下面这个函数中实现 将fun函数指针指向 function这个函数呢
在函数中实现
void change_fun(void (*fun)(char a),static void (*function)(char a))
{
   fun=function;
}
2013-04-03 15:00
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
得分:1 
程序代码:
typedef void pF(char);

pF change_fun()
{
   return task_0;
}

或者 直接定义
程序代码:
void (*change_fun())(char)
{
   return task_0;
}

返回 task_0的函数指针

人生是一场错过 愿你别蹉跎
2013-04-03 15:17
duzhiming
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2012-2-13
得分:0 
回复 2楼 rjsp
void task_0(char a) 既然是static的,那你就不可能在main.c中引用
为什么?
2013-04-03 16:24
duzhiming
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2012-2-13
得分:0 
回复 13楼 fanpengpeng
我就想在一个函数里实现 函数指针指向另一个函数  然后我来操作这个指针就可以了 不想去调用函数 比较麻烦啊
fun=function;//函数名被解释成函数指针

void change_fun(void (*fun)(char a), void (function)(char a)) 是不是应该这样写0 0



[ 本帖最后由 duzhiming 于 2013-4-3 16:36 编辑 ]
2013-04-03 16:27
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
得分:0 
然后我来操作这个指针就可以了 不想去调用函数 比较麻烦啊

你不想去调用哪个函数?

人生是一场错过 愿你别蹉跎
2013-04-03 16:43
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
得分:1 
a.c
程序代码:
extern void (*get_hello_world_function(void))(void);

int main(void)
{
    get_hello_world_function()();
    return 0;
}

b.c
程序代码:
#include <stdio.h>

static void hello_world(void)
{
    printf("Hello, world!\n");
}

extern void (*get_hello_world_function(void))(void)
{
    return hello_world;
}

输出:

My life is brilliant
2013-04-03 18:19
duzhiming
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2012-2-13
得分:0 
回复 17楼 lz1091914999
谢谢大家了 绕出来了 考虑不周全
static 持有静态存储器同样还有文件作用域  没有深刻理解
谢谢大家的帮助 不胜感激
2013-04-03 22:43
duzhiming
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2012-2-13
得分:0 
回复 17楼 lz1091914999
你写这个 没看明白
2013-04-03 22:46
duzhiming
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2012-2-13
得分:0 
回复 16楼 fanpengpeng
我是糊涂了
意思是 我想写一个函数带两个参数
一个参数是函数指针用来指向 第二个参数  第二个参数是一个函数
这样表达算是清楚了

[ 本帖最后由 duzhiming 于 2013-4-3 22:54 编辑 ]
2013-04-03 22:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-402957-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049802 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved