完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我在使用COSMIC C编译器在STVD中使用double或float数据类型时遇到了一些问题。 我能够声明这些数据类型但是当我开始调试并想要观察变量时,STVD显示了奇怪的值。例如,简单划分5.0 / 3.0在1中解决,... E-37就像0。 使用float数据类型具有相同的效果。 我正在使用断点和“快速观察”命令。 丹尼斯 以上来自于谷歌翻译 以下为原文 Hello all, I`m having some issues using the double or float datatype in STVD with the COSMIC C compiler. I am able to declare those data types but when i start debugging and would like to watch the varibles, STVD shows weird values. for example the simple division 5.0 / 3.0 resolutes in 1,...E-37 which is something like 0. Using float data type has the same effect. I was using break points and the command 'quick watch'. Dennis |
|
相关推荐
6个回答
|
|
你好,请试试这个(附图)。和显示项目:标准(右键单击WATCH中的显示项目)。谢谢;此致,Balmukund Prasad
以上来自于谷歌翻译 以下为原文 Hello , Please try this(Image atached). and Display item :Standard(After right click on the Display item in WATCH). Thanks& Regards, Balmukund Prasad |
|
|
|
|
|
|
|
如果您发布一小段代码,我可以看看另一个调试器:这将允许确定它是代码(或链接器文件/链接库),编译器还是调试器的问题。
问候, 卢卡(宇宙) 以上来自于谷歌翻译 以下为原文 if you post a small bit of code I can take a look with another debugger: that will allow to determine if it's an issue with the code (or the linker file / linked libraries), the compiler, or the debugger. Regards, Luca (Cosmic) |
|
|
|
卢卡你好,
甚至没有简单的程序工作。例如: 主要(){ double test = 0.0; test = 5/3; } 并且观察这个变量测试显示相同... 谢谢。 以上来自于谷歌翻译 以下为原文 Hello Luca, not even simple programs work. For example: main(){ double test = 0.0; test = 5 / 3; } And watching this variable test shows the same ... Thanks. |
|
|
|
你好,
当它被发布时,你的除法将返回1.0,因为它将5/3作为整数除法,然后将结果赋给浮点变量。如果添加强制转换,隐式或显式 test = 5.0 / 3.0; 它在我的模拟器/调试器上正常工作。 还要注意这样一个事实:通过非常简单的示例,一些以后从未使用过的变量只是被编译器优化掉了。 我建议你尝试以下方法 主要(){ 挥发性浮动试验= 0.0; test = 5.0 / 3.0; } 它在我的电脑上工作正常(zap调试器):如果它仍然不适合你,我可以尝试获取STVD的副本,看看它出错了。 以上来自于谷歌翻译 以下为原文 Hello, as it is posted, your division will return 1.0, as it makes 5/3 as an integer division and then assigns the result to a float variable. If you add a cast, implicit or explicit test = 5.0 / 3.0; it works ok on my simulator/debugger. Also take care of the fact that, with very simple examples, some variables that are never used later are just optimized away by the compiler. I suggest you try the following main(){ volatile float test = 0.0; test = 5.0 / 3.0; } It works ok on my PC (zap debugger): if it still does not work for you I can try to get a copy of STVD and see where it goes wrong. |
|
|
|
嗨卢卡,
感谢您的回复。 在这种情况下,这是我的错,一切都很顺利。 谢谢! 以上来自于谷歌翻译 以下为原文 Hi Luca, thanks for your reply. In this case it was my fault and everything is going fine. Thanks! |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2597 浏览 1 评论
3199 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1773 浏览 1 评论
3595 浏览 6 评论
5977 浏览 21 评论
927浏览 4评论
1303浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
572浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1291浏览 3评论
1344浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 13:18 , Processed in 1.007759 second(s), Total 53, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号