标题:
对单片机C语言printf函数的疑惑 各位大佬健康快乐
[打印本页]
作者:
cys9981
时间:
2022-9-9 08:53
标题:
对单片机C语言printf函数的疑惑 各位大佬健康快乐
对printf函数的疑惑
各位大佬健康快乐!
请看如下问题:
在程序中如果嵌入了汇编语言,则printf函数就会对浮点数出错,何耶?
#include"stdio.h"
#include"reg51.h"
float xyz=123.45;
main()
{
//串口初始化();
printf("xyz=%8.3f\n",xyz); //此时输出正确“xyz=123.45”
while (1);
}
在程序中如果嵌入了汇编语言,则printf函数就会对浮点数出错,何耶?
#include"stdio.h"
#include"reg51.h"
float xyz=123.45;
main()
{
//串口初始化();
#pragma asm
NOP
#pragma endasm
printf("xyz=%8.3f\n",xyz); //此时输出不正确:“xyz=??”
while (1);
}
作者:
yzwzfyz
时间:
2022-9-9 11:11
诚如是则需要重视了。
作者:
188610329
时间:
2022-9-9 15:44
这个问题不应该出现, 都插入汇编了, 你 ctrl + F5 之后的东西,应该完全能看懂。 就应该知道 是不是只加了 一个 NOP 而没有其他变化。如果在真的仔细分析过, 提出来的问题不应该是这样的, 而是 两个代码 编译后的 差异对比。 而能玩汇编的, 会还喜欢用 printf 的人,更是少见…… 自己随便写个库,不比 printf 这种傻瓜形的强百倍?
作者:
cys9981
时间:
2022-9-10 06:53
似乎全网无解
作者:
Hephaestus
时间:
2022-9-10 10:34
cys9981 发表于 2022-9-10 06:53
似乎全网无解
有仿真器用仿真器排查,没有仿真器只能空想,当然也可以从map文件下手。
51这个落后的体系被主流社会淘汰了20多年了,如果茧中网无法直接搜到你的答案,那么就是没有直接答案,需要你排查。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1