如果不更改函数调用位置的函数名,可以在函数实现的后面使用函数别名的方式,让目标文件*.o能同时存在两个函数名。
是不是非常有趣?
秘密就在于关键字alias。
举个栗子
int vx_test(int y)
{
int x=2+y;
return x;
}
如果向上面这样,我们可以直接调用vx_test
来执行该函数体。
int delta_test(int y)
{
int x=2;
return x;
}
int vx_test(int y) __attribute__((alias("delta_test")));
而如果像这样,我们则可以调用delta_test
或者vx_test
来执行同一个函数体。
想知道更多的alias解释,请自行百度。