微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 IAR 编译器在函数原型上使用“#pragma inline”就足够了吗?

如何解决使用 IAR 编译器在函数原型上使用“#pragma inline”就足够了吗?

我自己不使用 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 是一个强制内联函数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。