鱼C论坛

 找回密码
 立即注册
查看: 2615|回复: 4

[已解决]新手switch语句求助!!!

[复制链接]
发表于 2023-1-12 17:40:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
int main()
{
        void action_1(int,int),action_2(int,int);   /*函数声明*/
        char ch;
        int a=15,b=23;
        ch = getchar();
        switch(ch)
        {
                case 'a':
                case 'A':action_1(a,b);break;
                case 'b':
                case 'B':action_2(a,b);break;
                default :putchar('\a');
         }
        return 0;
}


报错1:undefined reference to `action_1'
报错2:[Error] ld returned 1 exit status
最佳答案
2023-1-12 19:06:40
报错1:
错误原因:action_1()和action_2()只被声明,而未被实际定义。
底层逻辑:你未说明以上函数应该如何执行,故报错。
改进方法:实际定义与声明类型相同且参数列表相同的void action_1(int ,int ),void action_2(int ,int );
(此函数可以写在main()之后)

报错2:
错误原因:未关闭上次运行时生成的cmd/console pauser进程(黑框)。
底层逻辑:编译器自身功能限制,与代码无关。
改进方法:结束以上进程,重新(尝试)通过编译器 重新编译,连接,运行。

如果有用请设置最佳谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-1-12 17:48:49 | 显示全部楼层
在后面加上
void action_1(int x,int y)
{
        printf("x+y=%d\n",x+y);
}
void action_2(int x,int y)
{
        printf("x*y=%d\n",x*y);
}
就解决啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

发表于 2023-1-12 18:23:12 | 显示全部楼层
如果解决
请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-1-12 19:06:40 | 显示全部楼层    本楼为最佳答案   
报错1:
错误原因:action_1()和action_2()只被声明,而未被实际定义。
底层逻辑:你未说明以上函数应该如何执行,故报错。
改进方法:实际定义与声明类型相同且参数列表相同的void action_1(int ,int ),void action_2(int ,int );
(此函数可以写在main()之后)

报错2:
错误原因:未关闭上次运行时生成的cmd/console pauser进程(黑框)。
底层逻辑:编译器自身功能限制,与代码无关。
改进方法:结束以上进程,重新(尝试)通过编译器 重新编译,连接,运行。

如果有用请设置最佳谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-1-12 20:16:13 | 显示全部楼层
上面的两位,楼主已经自问自答了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 17:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表