MAP文件不包含INLINE函数
当内联函数,它们不存在于最终的编译单元,以被称为符号函数。当内联,编译器代码直接放入调用者,因此,如果这是内联:
inline int multiply(int a, int b)
{
return a*b
}
int main()
{
printf("%i", multiply(a,b));
}
内联乘导致在编译产品的象征走开,让一样的:
int main()
{
printf("%i", a * b);
}
如果您始终希望该功能在最终产品中显示为符号,请删除内联。你的编译器可能有一个开关,可以很容易地在构建中删除内联。
是的,那是我决定的。不要直接在线处理。 – 2011-04-26 17:58:59
内联函数正在内嵌内联。如果被内联,则没有呼叫。他们将被拼接成二进制代码,以便任何时候“正常”发生呼叫。
标准C(又名C99)有一个定义好的方式来使用函数发射符号。只需在一个编译单元(.c文件)中将定义(使用inline
)放入.h文件和不带inline
的声明(无函数体)即可。
Thaks为您的答复。我在vs2005上:(不能使用这个功能,因为你知道vs2005不支持C99。 – 2011-04-26 20:40:21
首先,请在你的问题中增加这些信息,如果你问了C,你会得到一个关于现在的标准,那么对于你的特例'inline'本身就是C99的一部分,并没有出现在C89中,从这个意义上说它是C89的扩展,你的编译器文档应该包含这些扩展的信息,通常使用'inline静态'工作得很好。 – 2011-04-27 06:15:42
您的问题缺少使用的平台和编译器。 – 0xC0000022L 2011-04-26 17:12:42