c语言宏定义的本质是字符串吗