#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
void menu()
{
printf("————————————请选择以下模式:————————\n");
printf(" 1、+ 2、- \n");
printf(" 3、* 4、/ \n");
printf(" 0、退出游戏 \n");
printf("————————————————————————————————————\n");
}
int add(int a, int b)
{
return a + b;
}
int sub(int a, int b)
{
return a - b;
}
int mul(int a, int b)
{
return a * b;
}
int div(int a, int b)
{
return a / b;
}
int main()
{
int input = 0;
int a = 0, b = 0;
int z = 0;
int(*p[5])(int, int) = { 0,add,sub,mul,div };
do
{
menu();
printf("请选择:\n");
scanf("%d", &input);
printf("请输入两个操作数:\n");
scanf("%d%d", &a, &b);
if (input >= 1 && input <= 4)
{
z = p[input](a, b);
printf("%d\n", z);
}
else if (input == 0) printf("退出游戏\n");
else printf("输入错误\n");
} while (input);
return 0;
}
为什么编译时显示:严重性 代码 说明 项目 文件 行 禁止显示状态 详细信息
错误 C2371 “div”: 重定义;不同的基类型 calculator D:\penggeC\daima\calculator\2024.2.17zhuanyima.c 20 。
错误C2371是由于在代码中重定义了名为"div"的函数,而"div"是C标库中的一个函数名,用于整数除法运算。为了解决这个问题,
可以采取以下两种方法之一:
**更改函数名**:将代码中的函数名"div"修改为其他不会与C标准库冲突的名称,例如"my_div"。
**使用条件编译**:在代码开头添加条件编译指令,避免与C标准库中的函数名冲突。具体做法是在代码开头添加以下代码:
#define _CRT_SECURE_NO_WARNINGS 1
然后我的开头是有写这句条件编译的,为什么会错误呢