找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機編程使用函數(shù)指針 Keil報錯parameters do not fit within registers

查看數(shù): 3836 | 評論數(shù): 7 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2023-6-25 22:40

正文摘要:

// 定義函數(shù)指針 typedef (*Calculator) (int num1, int num2); // 加法 static int AddOption(int num1, int num2) {     return num1 + num2; } // 減法 static int SubOption(int num1, int num2) ...

回復(fù)

ID:217889 發(fā)表于 2023-6-26 23:06
Longan.Wang 發(fā)表于 2023-6-26 14:09
你定義函數(shù)指針
typedef (*Calculator) (int num1, int num2);沒有返回類型
你定義的函數(shù)實體又有返回類 ...

不好意思 這里手打的代碼漏掉了 實際代碼中是有的
ID:217889 發(fā)表于 2023-6-26 22:57
LaoYuTou 發(fā)表于 2023-6-26 08:23
測試沒問題,是不是調(diào)用問題,看看怎么調(diào)用的。

上面只是給了簡單的框架 實際代碼對類型做了重定義
typedef unsigned int uint16_t
typedef unsigned long uint32_t

實際測試中發(fā)現(xiàn)定義函數(shù)指針時變量類型使用uint16_t不會報這個錯 但是用uint32_t時會報錯
不清楚原因在哪里
ID:77589 發(fā)表于 2023-6-26 14:09
你定義函數(shù)指針
typedef (*Calculator) (int num1, int num2);沒有返回類型
你定義的函數(shù)實體又有返回類型
ID:526108 發(fā)表于 2023-6-26 09:35
直接聲明
code int(code*Calculator[]) (int, int)={
AddOption,
SubOption,
MulOption,
DivOption
};
return Calculator[opt](num1,num2);
ID:1080935 發(fā)表于 2023-6-26 08:23
測試沒問題,是不是調(diào)用問題,看看怎么調(diào)用的。
ID:908826 發(fā)表于 2023-6-26 08:03
https://www.cnblogs.com/jqdy/p/14476285.html,參考一下這個看看

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表