为什么总说“undeclared identifier”,明明有声明?

u010179812 2014-06-15 10:00:59
下面这个程序练习函数指针,加减乘除。

#include <iostream>
using namespace std;

int add(int a, int b);
int substract(int a, int b);
int multiplication(int a, int b);
int division(int a, int b);
void choice(int n, int (*p)(int a, int ));

int main()
{

return 0;
}

int add(int a, int b)
{
return a+b;
}

int substract(int a, int b)
{
if(a>=b)
{
return a-b;
}
else
{
return b-a;
}
}

int multiplication(int a, int b)
{
return a*b;
}

int division(int a, int b)
{
return (int)a/b;
}

void choice(int n, int (*p)(int a, int b))
{

cout<<n<<" : "<<(*p)(a, b)<<endl;
}


总说
cpp(46) : error C2065: 'a' : undeclared identifier
cpp(46) : error C2065: 'b' : undeclared identifier
执行 cl.exe 时出错.

明明有声明a与b呀,在void choice(int n, int (*p)(int a, int b))不是已经声明了吗?
...全文
938 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010179812 2014-06-15
  • 打赏
  • 举报
回复
哦,谢谢大家,这下明白了。
brookmill 2014-06-15
  • 打赏
  • 举报
回复
二楼笔误 void choice(int x, int y, int (*p)(int, int))
brookmill 2014-06-15
  • 打赏
  • 举报
回复
int main() { choice(1, 2, add); return 0; } void choice(x, y, int (*p)(int, int)) { cout<<(*p)(x, y)<<endl; }
brookmill 2014-06-15
  • 打赏
  • 举报
回复
43行这个函数choice只有两个参数:n和p,其中p是一个函数指针

65,182

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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