宏和函数的不同之处
代码长度:宏是将代码嵌入到程序中。程序的代码长度会增加 /// 函数代码只出现在一个地方。每次使用这个函数时调用这个代码即可.
执行速度:宏更快,宏只是简单的替换,而函数需要栈的参与
操作符优先级:宏只是简单的替换,所以代码的上下文的符号可能会改变原本的宏的优先级,除非宏有括号括着,而函数没有这样的担忧。
参数类型:宏与类型无关,而函数的参数是与类型有关的,如果参数的类型不要,就需要不同参数类型的函数、
#undef用于移除一个宏定义。
如果现存的一个名字需要被重新定义,那么它的旧名字首先要被移除。这个时候就要#undef NAME。