找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1148|回復(fù): 7
收起左側(cè)

c51單片機(jī)函數(shù)入?yún)?形參)問題

[復(fù)制鏈接]
ID:349276 發(fā)表于 2024-8-15 14:06 | 顯示全部樓層 |閱讀模式
函數(shù)形參是通過寄存器傳遞的,這里有個問題,如 void deal(num){...},這個形參num我并沒有指明它是bit int char等類型,編譯時keil編譯器它并不會報錯,并且調(diào)用時,實(shí)參我用bit型 char型 int型,都可以。有誰能深入解釋下這究竟咋回事不?
回復(fù)

使用道具 舉報

ID:624769 發(fā)表于 2024-8-15 17:38 | 顯示全部樓層
一個合格的程序,需要有很多“默認(rèn)”的定義。
以keil4 PK51 為例,你沒有定義的前提下,默認(rèn)是通過 R6,R7 寄存器傳參,你可以理解為short 類型,雖然不太確切。 即便你給一個 char 或者 bit 它也是強(qiáng)制轉(zhuǎn)成 short 格式(實(shí)際上也就是放入 R6,R7),然后傳到 函數(shù)中(實(shí)際上也就是讓函數(shù)使用 R6,R7 的值參與函數(shù)內(nèi)的計算)。
回復(fù)

使用道具 舉報

ID:1034262 發(fā)表于 2024-8-15 18:29 | 顯示全部樓層
KEIL有默認(rèn)的,不指定就默認(rèn)為int型。
回復(fù)

使用道具 舉報

ID:349276 發(fā)表于 2024-8-15 23:53 | 顯示全部樓層
188610329 發(fā)表于 2024-8-15 17:38
一個合格的程序,需要有很多“默認(rèn)”的定義。
以keil4 PK51 為例,你沒有定義的前提下,默認(rèn)是通過 R6,R7  ...

謝謝,這么說就清楚了。
回復(fù)

使用道具 舉報

ID:349276 發(fā)表于 2024-8-15 23:54 | 顯示全部樓層
coody_sz 發(fā)表于 2024-8-15 18:29
KEIL有默認(rèn)的,不指定就默認(rèn)為int型。

感謝!這些默認(rèn)的知識哪里能看到呢,感覺相關(guān)的書籍都沒有介紹。
回復(fù)

使用道具 舉報

ID:1128898 發(fā)表于 2024-8-16 03:25 | 顯示全部樓層
形參是默認(rèn)
回復(fù)

使用道具 舉報

ID:879348 發(fā)表于 2024-8-16 08:04 | 顯示全部樓層
不建議寫這種程序,在不同編譯器會有不同表現(xiàn)
回復(fù)

使用道具 舉報

ID:910662 發(fā)表于 2024-8-16 11:10 | 顯示全部樓層
還是確定一點(diǎn)的好,否則,不單自己不放心,讀起來也不舒服。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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