xinxinsky 发表于 2025-12-30 09:42:24

使用STC32G144K246芯片乘法问题反馈 | 已解决

今天调试程序发现的问题, 直接发最简化截图吧


这里的判断语句会进入else, 理论上不可能的, 输出的1024*1024的值为0, 不论是否使用AiCube中的数学库都是该结果, 没有REMOVEDUNUSED优化选项, 添加了NOOVERLAY优化选项;
下面是工程附件

DebugLab 发表于 2025-12-30 09:58:24

变量不能在函数外赋值
全局变量不能声明时赋值
93681UL
1024UL

lcwswust 发表于 2025-12-30 10:33:29

建议:
93681写成93681L;
1024*1024本身可能就溢出了,强制类型转换得挨着数字,而不是相乘后的结果,或把1024写成1024L;

xinxinsky 发表于 2025-12-30 10:46:58

感谢楼上两位大佬, 加UL已经解决问题{:4_201:}, 可是这个片子不是32位模式的吗? 为什么还要加UL呢? 那用这款片子的时候值多大的时候应该添加呢?

ercircle 发表于 2025-12-30 11:17:50

xinxinsky 发表于 2025-12-30 10:46
感谢楼上两位大佬, 加UL已经解决问题, 可是这个片子不是32位模式的吗? 为什么还要加UL呢? 那用这款片子的时 ...

这个是和编译器默认类型绑定的,默认应是int。
建议常量都加上形成习惯~

xinxinsky 发表于 2025-12-30 13:42:37

ercircle 发表于 2025-12-30 11:17
这个是和编译器默认类型绑定的,默认应是int。
建议常量都加上形成习惯~



好的大佬, 谢谢提醒{:4_180:}
页: [1]
查看完整版本: 使用STC32G144K246芯片乘法问题反馈 | 已解决