[問題] 在Keil C51 怎麼做weak function?

看板ASM (組合語言)作者 (懂得放手..才是王道)時間5年前 (2019/01/05 12:30), 編輯推噓2(202)
留言4則, 3人參與, 5年前最新討論串1/1
請教一下各位前輩, 在Keil C51中, 可以透過定義新的putchar()來取代stdio.h原本的putchar(), 然後stdio.h中的printf(), puts()等function中, 就會去使用新定義的puchar(), 而不會使用原本的putchar(), 在stdio.h中的這種function好像叫weak function.. 也就是說, 如果有定義新的, 就使用新的, 沒有的話就使用weak function.. 請問, 有人知道怎麼在Keil C51 (for 8051)做出這種function嗎? 例如: 我有一個函式void func(char arg); 裡面只有做很簡單的動作 User可以定義一個一樣名稱的function來做其它較複雜的動作.. 如果user沒有定義, Compiler就用我的, 如果user有定義, Compiler就用user定義的, 請問有人知道嗎? 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.193.30 ※ 文章網址: https://www.ptt.cc/bbs/ASM/M.1546662626.A.1CC.html

01/07 11:56, 5年前 , 1F
沒有看過,可是類似的有在define macro看過~
01/07 11:56, 1F

01/08 15:40, 5年前 , 2F
請問macro要怎麼做呢?
01/08 15:40, 2F

01/10 16:39, 5年前 , 3F
__weak void func(char arg);
01/10 16:39, 3F

01/13 23:44, 5年前 , 4F
有試過, 但會有error產生; missing ';' before 'void'
01/13 23:44, 4F
文章代碼(AID): #1SC3BY7C (ASM)
文章代碼(AID): #1SC3BY7C (ASM)