有什么编译器是支持用C++开发51的?

2020-02-01 16:22发布

查了一些资料,KEIL好像不支持用C++的(3.8版本),只有MDK才开始支持C++
由于有一些库函数要调用,所以需要用C++开发,不知道IAR支持么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
gamethink
1楼-- · 2020-02-02 18:53
 精彩回答 2  元偷偷看……
uc_c++
2楼-- · 2020-02-02 19:19
本帖最后由 uc_c++ 于 2012-6-21 15:41 编辑
gamethink 发表于 2012-6-21 15:16
问一下两个问题

1、如何将变量定义在xdata?


楼上你的思路要从KEIL思路转变过来。
只有定义的是特殊连接属性的全局或者静态变量才用__xdata,__idata,__data,并且只能const或者__no_init。
一般变量不需要__xdata,__idata,__data。

如果你的片子主要用xdata,那么选择date mode 为Large模式。


07283091
3楼-- · 2020-02-02 21:12
不需要啊
07283091
4楼-- · 2020-02-03 01:58
uc_c++ 发表于 2012-6-21 15:32
楼上你的思路要从KEIL思路转变过来。
只有定义的是特殊连接属性的全局或者静态变量才用__xdata,__idata,_ ...

佩服楼主
gamethink
5楼-- · 2020-02-03 03:28
本帖最后由 gamethink 于 2012-6-21 16:35 编辑
uc_c++ 发表于 2012-6-21 15:32
楼上你的思路要从KEIL思路转变过来。
只有定义的是特殊连接属性的全局或者静态变量才用__xdata,__idata,_ ...


谢谢
你的意思是,将data model 改为Large,那么定义变量就会默认在xdata区是不是?
如果我也想把128字节的data区变量用起来,就没办法了?(因为只能是const)

另外问题2的:
2、那个option 里面calling convention有什么作用?
是定义使用哪个区作为栈吗?(我理解对么?)

还有,如果我用的51不在IAR的支持列表里面,那么Device和CPU core该怎么选?
不支持列表的51,xdata区有多大,编译器也无法知道啊,无法知道怎么提供例如空间溢出的警告呢?
uc_c++
6楼-- · 2020-02-03 04:30
 精彩回答 2  元偷偷看……

一周热门 更多>