- // 定義函數指針
- 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關鍵字 但是看不懂怎么加
有大佬可以指教一下嗎 感謝
|