add C macro function