- // 定义函数指针
- typedef (*Calculator) (int num1, int num2);
- // 加法
- static int AddOption(int num1, int num2)
- {
- return num1 + num2;
- }
- // 减法
- static int SubOption(int num1, int num2)
- {
- return num1 - num2;
- }
- // 乘法
- static int MulOption(int num1, int num2)
- {
- return num1 * num2;
- }
- // 除法
- static int DivOption(int num1, int num2) {
- return num1 / num2;
- }
- int CalNum(int opt, int num1, int num2)
- {
- // 函数指针数组
- Calculator optFunc[] = {
- AddOption,
- SubOption,
- MulOption,
- DivOption
- };
- return optFunc[opt](num1, num2);
- }
复制代码
以上代码会在 return optFunc[opt](num1, num2); 语句这里报下面的告警
error C212: indirect call: parameters do not fit within registers
百度了一下了解到51的函数指针跟标准C有差别 需要加code关键字 但是看不懂怎么加
有大佬可以指教一下吗 感谢
|