OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3428|回复: 6

stm32可以使用函数重载吗?

[复制链接]

52

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
316
金钱
316
注册时间
2019-4-1
在线时间
118 小时
发表于 2020-4-4 20:52:25 | 显示全部楼层 |阅读模式
1金钱
定义了多个函数,这些函数大体相同,只是参数的类型不同,想使用函数重载的方法,代码如下:
int ABC(int a)
{
    return a;

}

int ABC(int a,int b)
{
    return a+b;

}

上述两个函数名相同,只是参数不一样。但是编译后报错 error:  #247: function "ABC" has already been defined
使用的编译软件是MDK5,难道是这个软件不支持函数重载吗?有没有别的办法解决这个问题呢?感谢指教!




最佳答案

查看完整内容[请看2#楼]

标准C不支持, 你可以试试C++开发STM32,看支持你这个应用吧。我觉得这种代码还是少用为好, 就和goto一样, 别搞得后来人懵逼。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-4-4 20:52:26 | 显示全部楼层
jshzp 发表于 2020-4-8 09:22
很多语言里面都有类似函数重载的概念,例如C#里面叫做方法重写。好处还是很多的,我最看重的是对于复杂程 ...

标准C不支持, 你可以试试C++开发STM32,看支持你这个应用吧。我觉得这种代码还是少用为好, 就和goto一样, 别搞得后来人懵逼。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-9-16
在线时间
80 小时
发表于 2020-4-6 11:35:22 | 显示全部楼层
用C++,函数重载是语言层面的特性,不是单片机特性,另外C++重载通常是通过name mangling实现的,所以处理符号表时要注意一下
回复

使用道具 举报

52

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
316
金钱
316
注册时间
2019-4-1
在线时间
118 小时
 楼主| 发表于 2020-4-7 08:56:40 | 显示全部楼层
ISO14882 发表于 2020-4-6 11:35
用C++,函数重载是语言层面的特性,不是单片机特性,另外C++重载通常是通过name mangling实现的,所以处理 ...

我用的单片机是STM32F429,软件是MDK5,怎么才能用C++呢?可以给个参考链接什么的吗?非常感谢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-4-8 01:25:06 | 显示全部楼层
不支持, 你搞2个函数不好么》?
回复

使用道具 举报

52

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
316
金钱
316
注册时间
2019-4-1
在线时间
118 小时
 楼主| 发表于 2020-4-8 09:22:37 | 显示全部楼层
正点原子 发表于 2020-4-8 01:25
不支持, 你搞2个函数不好么》?

很多语言里面都有类似函数重载的概念,例如C#里面叫做方法重写。好处还是很多的,我最看重的是对于复杂程序,这样写代码看着很简洁。
老大肯定知道怎么才能用C++,赶紧告诉我吧,谢谢了!
回复

使用道具 举报

52

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
316
金钱
316
注册时间
2019-4-1
在线时间
118 小时
 楼主| 发表于 2020-4-9 15:09:05 | 显示全部楼层
正点原子 发表于 2020-4-9 01:13
标准C不支持, 你可以试试C++开发STM32,看支持你这个应用吧。我觉得这种代码还是少用为好, 就和goto一 ...

谢谢老大的指教
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-2 17:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表