打印
[MCU]

难道iar c语言中没有真正的long int吗?

[复制链接]
406|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jiajs|  楼主 | 2020-5-19 23:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhenykun| | 2020-5-19 23:08 | 只看该作者
直接定义为unsigned long/long就行了.当然定义成long int/unsigned long int也没错,问题肯定在别的地方,你再找找

使用特权

评论回复
板凳
xxrs| | 2020-5-19 23:13 | 只看该作者
如果你想使用c的库函数的话,再2.10A版前的版本,应该在相应的*.xcl文件里将使用printf/sprintf的-e_small_write=_formatted_write注销掉,2.10版的在option里选大模式

使用特权

评论回复
地板
yufe| | 2020-5-19 23:15 | 只看该作者
显示浮点数一般要打近10行程序,要根据显示小数点位数先扩大10的N次方倍,然后求10的余数,进行一轮循环,要输出到LED/LCD又要变一个函数,如果用户要求其它的格式,又要辛苦修改一番.用printf/sprintf就避免了这些问题,用一行程序输出所有类型的数据,各种格式不说,还能很方便的输出字符,中文到点阵LCD,要知道怎样用只要看C语言的书就行了.

使用特权

评论回复
5
dengdc| | 2020-5-19 23:18 | 只看该作者
你用的C编页器支持长整型数就可以在自己变得.H文件中使用,这涉及到你的C编译器的版本,设置等诸多因素.

使用特权

评论回复
6
heweibig| | 2020-5-19 23:23 | 只看该作者
试了下,没有问题不会溢出的。环境是IAR C/C++ Compiler for MSP430 5.10.1 [Evaluation] (5.10.1.20144)。楼主新建个项目试试,也许是你的编译器设置有问题。

使用特权

评论回复
7
wuhany| | 2020-5-19 23:26 | 只看该作者

赋值建议写成下面的代码:
a = 132768L;

使用特权

评论回复
8
lizye| | 2020-5-19 23:29 | 只看该作者

430 long的定义是4个byte的,我在不同的版本的IAR上都试过。
赋值的时候数值后没加L吧

使用特权

评论回复
9
jiajs|  楼主 | 2020-5-19 23:33 | 只看该作者
嗯,多谢啦,我再看看吧

使用特权

评论回复
10
techno| | 2020-5-21 14:28 | 只看该作者
正常来说32768对于long类型的数据不会溢出的 应该是哪里的配置没弄好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

940

主题

11975

帖子

6

粉丝