inline void myfunction(){
//something here
}
void main(){
void (*p)(void);
p = myfunction;
p();
}
不同的编译器可以为此生成什么样的机器代码,以及在什么情况下?
答案 0 :(得分:3)
由于您的编译器需要该函数的地址,它将生成目标代码的独立副本。
答案 1 :(得分:2)
是 - 但这取决于您的编译器及其设置会发生什么副作用:
有多种方法可以定义内联函数;任何给定类型的定义肯定会发出独立的目标代码,绝对不会发出独立的目标代码,或者只有在知道需要时才发出独立的目标代码。有时这会导致目标代码的重复...
的 From Here 强> 的