首页 > 试题广场 >

宏函数和内联函数的区别

[问答题]
宏函数和内联函数的区别
1.宏是由预处理器对宏进行替代;而内联函数是通过编译器控制来实现的 2.宏定义只是简单的文本替换,内联函数直接被嵌入到目标代码中去 3.宏定义不是真正的函数,没有参数类型检查,不安全;而内联函数是真正的函数,有类型检查,更为安全 4.宏在定义时要注意参数,一般用括号括起来,否则容易出现二义性,而内联函数不会出现二义性
发表于 2022-09-14 16:52:13 回复(0)
宏函数:由预处理器对宏进行替代,只是简单的文本替换,不安全,容易出现二义性 内联函数:通过编译器控制来实现,是真正的函数有类型检查更加安全,不会出现二义性
发表于 2024-04-12 17:29:17 回复(0)
- 宏函数是由预处理器在编译时进行文本替换,而内联函数是由编译器在编译时将函数体代码插入到调用处。 - 宏函数没有类型检查和参数检查,也没有作用域限制,而内联函数具有这些特性。 - 内联函数在编译时插入代码,可以避免函数调用的开销,但对于函数体较大或者包含复杂控制流的函数,内联可能会增加代码的体积,并不一定能提高性能。
编辑于 2024-03-05 14:54:32 回复(0)
宏定义在预编译时展开,内联函数在编译时展开;内联函数可以检查函数参数和语句是否正确,而宏定义不具有这样的功能。
发表于 2023-08-18 10:05:38 回复(0)
1 宏函数是预处理是展开的,而内联函数是在编译阶段展开的。 2 宏函数在定义时要注意括号的使用,避免二义性,而内联函数不含产生二义性。 3宏函数没有安全类型检查和语句检查,只是简单地文本替换,而内联函数会进行安全类型检查和语句是否正确检查。
发表于 2022-10-29 15:08:03 回复(0)