内联函数C的函数指针

时间:2014-02-11 15:04:41

标签: c function-pointers inline

inline void myfunction(){
    //something here
}

void main(){
    void (*p)(void);
    p = myfunction;
    p();
}

不同的编译器可以为此生成什么样的机器代码,以及在什么情况下?

2 个答案:

答案 0 :(得分:3)

由于您的编译器需要该函数的地址,它将生成目标代码的独立副本。

答案 1 :(得分:2)

是 - 但这取决于您的编译器及其设置会发生什么副作用:

有多种方法可以定义内联函数;任何给定类型的定义肯定会发出独立的目标代码,绝对不会发出独立的目标代码,或者只有在知道需要时才发出独立的目标代码。有时这会导致目标代码的重复...

From Here