MDK/armcc c99编译模式下的inline

先说下c99模式相较于默认的c90模式的优点

  • 变量声明不需要放在函数开头
  • 结构体初始化更方便
  • 增加了inline关键词,用来替代宏定义

那么就来说说inline关键词的使用

使用情况一般分为三种:

  1. 单元外使用
  2. 单元内使用
  3. 单元内外使用

1、单元外使用,需要在(.h)中使用static inline声明并定义:

static inline void func(void){}

2、单元内使用,(.c)中使用static inline申明并定义:

static inline void func(void){}

3、单元内外使用,(.c)使用inline定义,(.h)中声明:

xxx.c

inline void func(void){}

xxx.h

void func(void);

需要注意的是,这种情况下单元内调用是内联的,但是单元外调用则不是。

最后,要使inline生效,需要打开Optimize for time。


发表评论

电子邮件地址不会被公开。 必填项已用*标注