gpt4 book ai didi

带有巨大静态数组的 C++ 大头文件(4.5MB 或更多)

转载 作者:行者123 更新时间:2023-11-27 22:29:37 24 4
gpt4 key购买 nike

我有三个大头文件(4.5MB 或更多),里面有巨大的静态数组。

我需要将这些头文件添加到 C++ Android native 代码项目中,我不知道这是否是正确的方法。

我认为这些是大文件并且包含大数组。我不知道他们是否会生成一个大的 lib.so 以及数组是否会消耗大量 RAM。

例如一个数组包含 4,032 个 float 元素,而另一个数组包含 8,056 个 int 元素。

你怎么看?

谢谢。

最佳答案

强烈建议不要在头文件中定义静态数组(即实际指定static int foo[8056])。最好在头文件中将它们声明为 extern,然后在单个 C 或 C++ 源文件中定义它们。

每个包含这些 header (甚至间接包含)的源文件都会为这些静态数组生成自己的定义。不能保证编译器/链接器会将它们优化为单个定义,即使在未使用它们的源文件中也是如此。事实上,在许多情况下,编译器无法优化它们。这可能会导致您的静态数据消耗大量磁盘空间,并且可能还会消耗运行时内存。

关于您的其他 4.4+ MB 的头文件,我不能说太多,因为我不知道它们里面有什么。

关于带有巨大静态数组的 C++ 大头文件(4.5MB 或更多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4431644/

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