<label id="9dnfr"><th id="9dnfr"></th></label>
  • <ins id="9dnfr"></ins>

     找回密碼
     立即注冊(cè)

    QQ登錄

    只需一步,快速開始

    搜索
    查看: 1671|回復(fù): 4
    打印 上一主題 下一主題
    收起左側(cè)

    對(duì)單片機(jī)C語言printf函數(shù)的疑惑 各位大佬健康快樂

    [復(fù)制鏈接]
    跳轉(zhuǎn)到指定樓層
    樓主
    ID:362599 發(fā)表于 2022-9-9 08:53 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
    對(duì)printf函數(shù)的疑惑
    各位大佬健康快樂!
    請(qǐng)看如下問題:
    在程序中如果嵌入了匯編語言,則printf函數(shù)就會(huì)對(duì)浮點(diǎn)數(shù)出錯(cuò),何耶?


    #include"stdio.h"
    #include"reg51.h"
    float xyz=123.45;
    main()
    {
    //串口初始化();
    printf("xyz=%8.3f\n",xyz);  //此時(shí)輸出正確“xyz=123.45”
    while (1);
    }

    在程序中如果嵌入了匯編語言,則printf函數(shù)就會(huì)對(duì)浮點(diǎn)數(shù)出錯(cuò),何耶?

    #include"stdio.h"
    #include"reg51.h"
    float xyz=123.45;
    main()
    {
    //串口初始化();
    #pragma asm
    NOP
    #pragma endasm

    printf("xyz=%8.3f\n",xyz);  //此時(shí)輸出不正確:“xyz=??”
    while (1);
    }

    分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
    收藏收藏 分享淘帖 頂 踩
    回復(fù)

    使用道具 舉報(bào)

    沙發(fā)
    ID:123289 發(fā)表于 2022-9-9 11:11 | 只看該作者
    誠(chéng)如是則需要重視了。
    回復(fù)

    使用道具 舉報(bào)

    板凳
    ID:624769 發(fā)表于 2022-9-9 15:44 | 只看該作者
    這個(gè)問題不應(yīng)該出現(xiàn), 都插入?yún)R編了, 你 ctrl + F5 之后的東西,應(yīng)該完全能看懂。 就應(yīng)該知道  是不是只加了 一個(gè) NOP 而沒有其他變化。如果在真的仔細(xì)分析過, 提出來的問題不應(yīng)該是這樣的, 而是 兩個(gè)代碼  編譯后的 差異對(duì)比。 而能玩匯編的, 會(huì)還喜歡用 printf 的人,更是少見…… 自己隨便寫個(gè)庫(kù),不比 printf 這種傻瓜形的強(qiáng)百倍?
    回復(fù)

    使用道具 舉報(bào)

    地板
    ID:362599 發(fā)表于 2022-9-10 06:53 | 只看該作者
    似乎全網(wǎng)無解
    回復(fù)

    使用道具 舉報(bào)

    5#
    ID:883242 發(fā)表于 2022-9-10 10:34 | 只看該作者
    cys9981 發(fā)表于 2022-9-10 06:53
    似乎全網(wǎng)無解

    有仿真器用仿真器排查,沒有仿真器只能空想,當(dāng)然也可以從map文件下手。

    51這個(gè)落后的體系被主流社會(huì)淘汰了20多年了,如果繭中網(wǎng)無法直接搜到你的答案,那么就是沒有直接答案,需要你排查。
    回復(fù)

    使用道具 舉報(bào)

    本版積分規(guī)則

    小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

    Powered by 單片機(jī)教程網(wǎng)

    快速回復(fù) 返回頂部 返回列表