C++ 使用宏重新定义noinline属性

C++ 使用宏重新定义noinline属性,c++,gcc,macros,C++,Gcc,Macros,是否可以使用#define重新定义属性,例如[[gnu::noinline]]和\uuuuuu属性((noinline)) 我正在努力做到这一点 #定义noinline uu属性u((noinline))\ noinline void my_函数(); //变成 __属性(noinline)) void my_函数(); //或 [[gnu::noinline]] void my_函数(); 我尝试过打破宏定义,但我似乎无法超越GCC #定义noinline_u0;[gnu::noinline

是否可以使用
#define
重新定义属性,例如
[[gnu::noinline]]
\uuuuuu属性((noinline))

我正在努力做到这一点

#定义noinline uu属性u((noinline))\
noinline void my_函数();
//变成
__属性(noinline))
void my_函数();
//或
[[gnu::noinline]]
void my_函数();
我尝试过打破宏定义,但我似乎无法超越GCC

#定义noinline_u0;[gnu::noinline]
#定义noinline[noinline_u2;]
//及
#定义noinline\uuuu属性__((
#定义noinline(noinline_uInLine)
是否可以使用#define重新定义[[gnu::noinline]]和属性((noinline))等属性

你不能“重新定义”它们,也就是说,你不能让它们意味着其他东西


但是,您可以为它们定义宏别名,这是您通过示例实现的目标。

我的示例不编译。应该吗?这只是一个Arduino项目,所以也许他们的GCC版本不允许这样做?@Iain他们在我的GCC.Hmmm中编译得很好。我刚刚试用了
arduino cli
,效果很好。