C语言中的内联局部变量

时间:2015-05-22 01:20:14

标签: variables inline local

由于特别是测试策略和操作速度,我想将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被内联时,局部变量是否被独立隐藏?

抱歉我的英语不好。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

是的,无论是否使用inline,编译器都会正确编译您的函数。 inline说明符不仅仅是简单的源文本替换,而是一个编译器功能,它为编译器提供了关于如何编译代码的提示。

答案 1 :(得分:0)

inline是一种编译器功能,可以提高那些集中使用的函数的性能。它不会更改局部变量语句的任何规则,也不会在您的情况下引起冲突。