由于特别是测试策略和操作速度,我想将1个普通函数拆分为多个内联函数。
void a(void)
{
b();
c();
}
同时,如果两个内联函数都有相同名称的巨大局部变量,编译器如何处理它们?
inline b(void)
{
unsigned long tmp1;
unsigned long tmp2;
.....
}
inline c(void)
{
unsigned long tmp1; ==> same name with inline function b
unsigned long tmp2; ==> same name with inline function b
.....
continued...
}
当b和c被内联时,局部变量是否被独立隐藏?
抱歉我的英语不好。 提前谢谢。
答案 0 :(得分:0)
是的,无论是否使用inline
,编译器都会正确编译您的函数。 inline
说明符不仅仅是简单的源文本替换,而是一个编译器功能,它为编译器提供了关于如何编译代码的提示。
答案 1 :(得分:0)
inline
是一种编译器功能,可以提高那些集中使用的函数的性能。它不会更改局部变量语句的任何规则,也不会在您的情况下引起冲突。