当前位置:  开发笔记 > 编程语言 > 正文

包含在许多翻译单元中的静态常量的开销?

如何解决《包含在许多翻译单元中的静态常量的开销?》经验,为你挑选了0个好方法。

在头文件中,可以在一行中声明和(预)定义全局常量.

// constants.h
namespace Constant{
    static const unsigned int framerate = 60;
    static const char * const windowName = "Test";
    static const unsigned char * const cursorBitmap = { lots of data };
}

我喜欢这种格式,因为它允许我将常量保存在一个位置,并且避免需要在一个文件中声明常量并在另一个文件中定义它,这有助于提高可读性.constants.h但是,当任何翻译单元包括时,它会按单位扩展这些定义.

我的问题是,如果我包含constants.h在许多翻译单元中,这会导致显着的开销,例如,cursorBitmap其他数组常量是否非常大?如果我将它包含在100个单元中,我的程序是否包含每个字符串和数组文字的100个副本?或者只会复制指针和值?

如果有开销,有没有办法可以避免它而不需要单独声明和定义?

(我也猜测'静态'在这个用法中是多余的,但我还是喜欢把它放在那里)

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有