关于_属性_和noinline(GCC)的问题 能告诉别人C++中的意思吗?(位于函数前面) 还有我是如何发现这个问题的 __attribute__ ((noinline))

关于_属性_和noinline(GCC)的问题 能告诉别人C++中的意思吗?(位于函数前面) 还有我是如何发现这个问题的 __attribute__ ((noinline)),c++,gcc,C++,Gcc,多谢各位。关于GCC定义了许多不同的非标准函数,用于指示函数的特殊特性。这些通常用于优化或处理特定于平台的功能 在这种情况下,noinline属性表示“在任何情况下都不要内联此函数”,而优化器可能会以其他方式内联它。GCC定义了许多不同的非标准函数,用于指示函数的特殊功能。这些通常用于优化或处理特定于平台的功能 在这种情况下,noinline属性意味着“在任何情况下都不要内联此函数”,而优化器可能会以其他方式内联它。与此属性的名称的含义非常相似。作为一种繁重的优化,编译器可能会选择内联较小的函数

多谢各位。关于

GCC定义了许多不同的非标准函数,用于指示函数的特殊特性。这些通常用于优化或处理特定于平台的功能


在这种情况下,
noinline
属性表示“在任何情况下都不要内联此函数”,而优化器可能会以其他方式内联它。

GCC定义了许多不同的非标准函数,用于指示函数的特殊功能。这些通常用于优化或处理特定于平台的功能


在这种情况下,
noinline
属性意味着“在任何情况下都不要内联此函数”,而优化器可能会以其他方式内联它。

与此属性的名称的含义非常相似。作为一种繁重的优化,编译器可能会选择内联较小的函数,以避免函数调用的开销。如果出于某种原因不希望函数内联,可以使用它来阻止编译器进行此优化

它位于函数前面


要了解GCC属性是如何按语法组织的,请参见该属性名称的大致含义。作为一种繁重的优化,编译器可能会选择内联较小的函数,以避免函数调用的开销。如果出于某种原因不希望函数内联,可以使用它来阻止编译器进行此优化

它位于函数前面


要了解GCC属性是如何按语法组织的,请参见

,这意味着编译器不应内联调用该函数。在“机器对话”中,它意味着它强制编译器将该函数存储在一个位置,并始终从所有调用站点对其进行调用:如果让它自己调用,它可能会选择将该函数的代码包含到调用它的位置,在一些调用站点中,甚至所有调用站点中,如果函数很小。@fge是否将其作为答案发布?这样他就可以为未来的访客提供正确的答案了?@太晚了:p@fge您是第一个注释的,可能不是…这意味着编译器不应该内联调用该函数。在“机器对话”中,它意味着它强制编译器将该函数存储在一个位置,并始终从所有调用站点对其进行调用:如果让它自己调用,它可能会选择将该函数的代码包含到调用它的位置,在一些调用站点中,甚至所有调用站点中,如果函数很小。@fge是否将其作为答案发布?这样他就可以为未来的访客提供正确的答案了?@太晚了:p@fge你是第一个发表评论的人,也许不是。。。