使用宏重新定义 noinline 属性
Redefinition of noinline attribute using macros
是否可以使用 #define
重新定义 [[gnu::noinline]]
和 __attribute__((noinline))
等属性?
我正在努力做到这一点
#define noinline __attribute__((noinline)) \
noinline void my_function();
// Turns into
__attribute__((noinline))
void my_function();
// or
[[gnu::noinline]]
void my_function();
我试过分解宏定义,但我似乎无法胜过 GCC。
#define noinline_ [gnu::noinline]
#define noinline [noinline_]
// and
#define noinline_ __attribute__((
#define noinline noinline_ noinline))
Is it possible to redefine attributes such as [[gnu::noinline]] and attribute((noinline)) using #define?
你不能“重新定义”它们,即你不能让它们有别的意思。
但是您可以为它们定义宏别名,这是您通过示例实现的目标。
是否可以使用 #define
重新定义 [[gnu::noinline]]
和 __attribute__((noinline))
等属性?
我正在努力做到这一点
#define noinline __attribute__((noinline)) \
noinline void my_function();
// Turns into
__attribute__((noinline))
void my_function();
// or
[[gnu::noinline]]
void my_function();
我试过分解宏定义,但我似乎无法胜过 GCC。
#define noinline_ [gnu::noinline]
#define noinline [noinline_]
// and
#define noinline_ __attribute__((
#define noinline noinline_ noinline))
Is it possible to redefine attributes such as [[gnu::noinline]] and attribute((noinline)) using #define?
你不能“重新定义”它们,即你不能让它们有别的意思。
但是您可以为它们定义宏别名,这是您通过示例实现的目标。