代码之家  ›  专栏  ›  技术社区  ›  0___________

在IAR编译器的函数原型上使用“#pragma-inline”是否足够?

  •  0
  • 0___________  · 技术社区  · 3 年前

    我自己不使用IAR,也不能自己测试(否则我不会在这里问这个问题)。

    我的问题是:申请足够吗 #pragma inline=xxxxx 在函数原型上(因为使用 __attribute__ 在gcc中),并且在文件中的某个位置有定义,但没有这个 #pragma

    gcc示例:

    static inline int __attribute__((always_inline)) foo(int x);
    
    /* .... */
    
    static inline int foo(int x)
    {
        return x + x;
    }
    

    我想用同样的 #pragma inline=... 当使用IAR编译器进行编译时。

    #pragma inline=forced
    static inline int foo(int x);
    
    /* .... */
    
    static inline int foo(int x)
    {
        return x + x;
    }
    

    我的问题是: 它在IAR中有效吗?

    0 回复  |  直到 3 年前
        1
  •  2
  •   Johan    3 年前

    是的,这会起作用。编译器会识别 foo() 是强制内联函数(如果应用) #pragma inline=forced 关于功能原型。