十、宏定义和函数和typedef有何区别?

1.宏定义在编译前完成替换,至关于直接插入代码,替换以后的代码参与编译,运行时不存在函数调用,运行就更快。函数调用就须要跳转到具体的函数,速度就更慢。ide

2.宏定义直接插入代码,没有返回值。函数有返回值。函数

3.宏定义没有参数类型检测,函数有参数类型检测。it

4.宏定义后不加分号。编译

------------------------------------------------------class

1.宏主要用于定义常量及书写复杂的内容;typedef主要用于定义类型别名。数据类型

2.宏替换发生在编译阶段以前,属于文本插入替换;typedef是编译的一部分。数据

3.宏不检查类型;typedef会检查数据类型。di

4.宏不是语句,不在最后加分号;typedef是语句,要加分号标识结束。view