标题:求教函数指针问题
只看楼主
misswe
Rank: 2
等 级:论坛游民
帖 子:17
专家分:15
注 册:2011-4-30
结帖率:100%
已结贴  问题点数:20 回复次数:9 
求教函数指针问题
3.通过函数指针数组高效的实现,
输入0,输出hello
输入1,输出world
输入2,输出c++
输入3,输出asm
输入其它输出:出错
搜索更多相关主题的帖子: hello 
2011-05-05 20:32
键盘农夫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:106
注 册:2011-5-5
得分:0 
多此一举吧
小题大做

《狂人C:程序员入门必备》
2011-05-05 20:40
mayuebo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:257
专家分:1282
注 册:2005-9-8
得分:0 
int main(int argc,char *argc[])
{
    select case argc
           case 1
                printf("hello");
                break;
           //---下面同上
}

成功贵在坚持
2011-05-05 20:40
misswe
Rank: 2
等 级:论坛游民
帖 子:17
专家分:15
注 册:2011-4-30
得分:0 
回复 2楼 键盘农夫
刚学C,很菜的,上论坛求教有问题?
2011-05-05 20:47
misswe
Rank: 2
等 级:论坛游民
帖 子:17
专家分:15
注 册:2011-4-30
得分:0 
回复 3楼 mayuebo
哥们能在说详细点吗?
2011-05-05 20:47
键盘农夫
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:106
注 册:2011-5-5
得分:0 
回复 4楼 misswe
求教没问题
是这个题目的要求有问题

《狂人C:程序员入门必备》
2011-05-05 20:51
爱海松涛
Rank: 3Rank: 3
来 自:安徽合肥
等 级:论坛游侠
帖 子:120
专家分:197
注 册:2011-2-25
得分:0 
路过
2011-05-05 20:57
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
得分:20 
程序代码:
#include <stdio.h>

enum FUNC_E{
    MSG_HELLO_E = 0,
    MSG_WORLD_E,
    MSG_CPLUSPLUS_E,
    MSG_ASM_E,
    MSG_ERROR_E,
    MSG_MAX_E,
};

#define my_print(string)    \
    printf("%s\n",string)

typedef void(*FUNC_PTR)(void);

typedef struct __ShowList {
    FUNC_PTR callback[MSG_MAX_E];
}ShowList;

void msg_hello(void)
{
    my_print("hello");
}

void msg_world(void)
{
    my_print("world");
}

void msg_cplusplus(void)
{
    my_print("c++");
}

void msg_asm(void)
{
    my_print("asm");
}

void msg_dump(void)
{
    my_print("error");
}

ShowList cc_list = {
    msg_hello,
    msg_world,
    msg_cplusplus,
    msg_asm,
    msg_dump
};

int main(int argc,char *argv[])
{
    cc_list.callback[MSG_HELLO_E]();
    cc_list.callback[MSG_ASM_E]();
    cc_list.callback[MSG_ERROR_E]();
    getchar();
    return 0;
}
希望对你有点帮助

技术问题,请不要以短消息方式提问
2011-05-05 21:21
misswe
Rank: 2
等 级:论坛游民
帖 子:17
专家分:15
注 册:2011-4-30
得分:0 
回复 8楼 zaixuexi
版主的代码我认真的调试过了  可以达到目的,但我们还没学机构体啊!
得用先前的认识解决解决问题
2011-05-05 22:08
zjl01223
Rank: 2
等 级:论坛游民
帖 子:42
专家分:90
注 册:2011-4-21
得分:0 
#include<stdio.h>
void main()
{
    char *str[]={"hello","world","c++","asm"},**p;
    int i;
    scanf("%d",&i);
    if(i>=0&&i<=3)
    {p=str+i;
     printf("%s\n",*p);}
    else printf("error\n");
}
2011-05-06 00:29



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




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

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