gpt4 book ai didi

c++ - 函数属性应该放在哪里?

转载 作者:行者123 更新时间:2023-12-02 04:07:15 26 4
gpt4 key购买 nike

假设我想用 [[gnu::cold]]; 标记一个非内联函数,该属性应该放在 header 的声明中,还是应该与中的定义一致源文件?假设我不会使用 LTO,只是希望针对二进制大小而不是执行速度来优化该特定函数。

标题示例:

[[gnu::cold]] void rarely_called_func();

源文件示例:

[[gnu::cold]] void rarely_called_func() { ... }

此外,它应该位于声明/定义中的哪个位置:

/* A */ int /* B */ func () /* C */;

最佳答案

除非编译器能够看到该属性,否则它无法在优化中使用该属性。如果不将属性放在声明中,则编译器将看不到该属性。结论:为了让编译器使用该属性进行优化,必须将该属性放在函数的声明中(在头文件中)。

关于c++ - 函数属性应该放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60381307/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com