gpt4 book ai didi

c++ - 内联静态数据的初始化

转载 作者:行者123 更新时间:2023-12-02 10:36:32 25 4
gpt4 key购买 nike

我想知道如何以及何时在C++中初始化静态内联数据(例如,在gcc或clang中)。我知道这是特定于某些体系结构的问题,与C++标准无关。

我知道对于静态/全局非内联数据,gcc正在使用.init.fini部分来构造和销毁带有此类限定符的对象,但这不适用于内联静态数据,因为它可以在许多翻译单元中进行初始化,因此init部分最终将为单个对象进行许多初始化,这是错误的。

有谁知道实现的工作原理?

明确地说,我对那些内联变量的初始化的实现感兴趣。

最佳答案

该实现等效于局部函数静态函数的实现,该函数还会重复初始化“风险”:创建了一个附加的保护变量并进行检查以使初始化仅发生一次。这个过程的assembly非常简单。

关于c++ - 内联静态数据的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60030083/

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