defunとdefmacroってどう違うんですか?

(defmacro f0 (arg)
 (f1 arg))
という構文があって、
(defun f0 (arg)
 (f1 arg))
と置き換えると、使用されている場所でエラーが出ます。
使用されている場所で、f0 〜をf1 〜に置き換えても同じエラーが出ます。

等価な置換を教えてください(あれば・・・)
mapcarやapplyの中で使われていることは、関係していますか?