有没有办法在MAP文件中包含内联函数。本质上是否有任何方法可以在地图文件中包含非公共符号?
谢谢,
答案 0 :(得分:1)
当函数内联时,它们不会作为要调用的符号函数出现在最终编译单元中。内联时,编译器将代码直接放入调用者,因此如果内联:
inline int multiply(int a, int b)
{
return a*b
}
int main()
{
printf("%i", multiply(a,b));
}
内联导致在编译产品中作为符号的乘法消失,与下面相同:
int main()
{
printf("%i", a * b);
}
如果您始终希望该功能在最终产品中显示为符号删除内联。您的编译器可能有一个开关,可以很容易地删除构建中的内联。
答案 1 :(得分:0)
内联函数正在内联。没有电话给他们如果他们被内联。它们将被拼接到二进制代码中,而“正常”调用将会发生。
答案 2 :(得分:0)
标准C(又名C99)有一个明确定义的方法,可以发出inline
函数的符号。只需在一个编译单元(.c文件)中将定义(带有inline
)放在.h文件和声明(无函数体)而不用inline
。