#define a() 使用的是预处理器的宏,宏的实现是用预处理器而不是编译器,预处理器直接用宏代码代替宏的调用,这样就节省了参数压栈 生成汇编CALL 返回参数等等,非常节省开销
而void a(){} 只是普通的函数调用,自然#define a() 要比void a(){} 节省的多
另外#define a() 在C++里的表现行为就是内联函数
#define a() 只是重命名,即时把a定义为(),在以后程序中用到a就代表()
void a(){} 则是一个函数,虽然函数体{}中是空的,但他仍然是一个函数,a后的()中是变量-型参,不过此函数是不带型参的