C语言的switch内case标签是否能进入自定义的函数中?

gfvera 2012-08-20 09:24:39
由于只是C语言入门自己写点东西玩玩就写一个音乐播放器的壳子,标签我是想用的 switch()的case : 标签来进行选择。每一层的显示内容都用一个case:到另一个函数内实现。但是第一个case:就出了问题。。。。编译结果是:

switch - 多个函数 - 简陋点歌系统.obj : error LNK2001: unresolved external symbol _hyyy
Debug/switch - 多个函数 - 简陋点歌系统.exe : fatal error LNK1120: 1 unresolved externals

而在case:内注释掉函数名却可以执行编译了,我想要问的就是 switch()的case:标签内是否能写一个函数调用???如果要修改该如何修改呢?

#include <stdio.h>

void hyyy(void);
void xcdj(void);
void cyy(void);

int main(void)
{
char xzyy; //xzyy == 选择音乐。 i = 选择音乐类型循环

do
{
printf("蛋疼音乐播放器 V 0.0 \n\n"
"a. 华语音乐 b. 现场DJ \n"
"c. 纯音乐 d. 退出 \n\n"
"请安上面的数字选择你所需要收听音乐种类: ");

scanf("%c", &xzyy);

switch (xzyy)
{
case 'a' :
printf("\n进入华语音乐TOP10华语明星选择: \n");
hyyy();
break;
case '2' :
// xcdj();
break;
case '3' :
// cyy();
default :
break;
}
} while (xzyy == 4);

return 0;
}
...全文
820 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
图灵狗 2012-08-20
  • 打赏
  • 举报
回复
hyyy等函数只有声明却没有实现,你可以先建立一个空实现,比如:
void hyyy(void)
{
}
ies_sweet 2012-08-20
  • 打赏
  • 举报
回复

void hyyy(void);
void xcdj(void);
void cyy(void);

是否应该为

extern void hyyy(void);
extern void xcdj(void);
extern void cyy(void);

是在另外一个文件里定义的吗?
转角天边 2012-08-20
  • 打赏
  • 举报
回复
楼上正解
cll131421 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
case 'a' :
{
printf("\n进入华语音乐TOP10华语明星选择: \n");
hyyy();
}
break;
[/Quote]
楼上正解,没有大括号程序无法正确分辨case的作用域
gfvera 2012-08-20
  • 打赏
  • 举报
回复
你运气好,分数全给你了。。。。。
[Quote=引用 1 楼 的回复:]

case 'a' :
{
printf("\n进入华语音乐TOP10华语明星选择: \n");
hyyy();
}
break;
[/Quote]
gfvera 2012-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

case 'a' :
{
printf("\n进入华语音乐TOP10华语明星选择: \n");
hyyy();
}
break;
[/Quote]

额 。。。已经没问题了。。是我自己在下面的自定以函数名称写错了。。。
shen_wei 2012-08-20
  • 打赏
  • 举报
回复
case 'a' :
{
printf("\n进入华语音乐TOP10华语明星选择: \n");
hyyy();
}
break;

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧