问题描述
我自己不使用 IAR,也无法自己测试(否则我不会在这里问这个问题)。
我的问题是:在函数原型上应用 #pragma inline=xxxxx
是否足够(因为可以在 gcc 中使用 __attribute__
)并且在没有这个 #pragma
的文件中定义
gcc 示例:
static inline int __attribute__((always_inline)) foo(int x);
/* .... */
static inline int foo(int x)
{
return x + x;
}
在使用 IAR 编译器进行编译时,我希望使用 #pragma inline=...
进行相同的操作。
#pragma inline=forced
static inline int foo(int x);
/* .... */
static inline int foo(int x)
{
return x + x;
}
我的问题是:它可以在 IAR 中工作吗?
解决方法
是的,这会奏效。如果在函数原型上应用 foo()
,编译器会识别出 #pragma inline=forced
是一个强制内联函数。