代码技巧笔记:
#ifndef WEAK
#define WEAK __attribute__((weak)) //避免外部重定义功能
#endif
#ifndef PACKED
#define PACKED __attribute__((packed)) //避免对齐
#endif
#ifndef USED
#define USED __attribute__((used)) //向编译器说明这段代码有用,即使在没有用到的情况下编译器也不会警告!
#endif
#ifndef MAY_BE_UNUSED
#define MAY_BE_UNUSED __attribute__((unused)) // 表示该函数或变量可能不使用,这个属性可以避免编译器产生警告信息
#endif
#ifndef NORETURN
#define NORETURN __attribute__((noreturn))
#endif
#ifndef ALIGNED
#define ALIGNED(size) __attribute__((aligned(size)))
#endif
#ifndef SECTION
#define SECTION(name) __attribute__((section(name)))
#endif
#ifndef NEVER_INLINE
#define NEVER_INLINE __attribute__((noinline))
#endif
#ifndef ALWAYS_INLINE
#define ALWAYS_INLINE __attribute__((always_inline))
#endif