我想为一些特定于操作系统(Linux/MacOSX/Windows)的调用编写一个跨平台的包装器,以获取CPU的内核数等。我的想法是将它们全部放在带有静态变量的单个函数中,所以像不更改的内核数这样的东西只会处理一次。

int getNumCPUCores()
{
    static int numCores = 0;

    if(!numCores)
    {
        // The info is aquired here
    }

    return numCores;
}

现在我想知道这是否是个坏主意,因为不管是否初始化,所有这些静态变量都会占用内存空间。
还是我误会了什么?

最佳答案

int是几个字节(在大多数现代平台上是4或8个字节)。除非你有数以百万计的静态变量或者一些非常大类型的静态变量,否则你不需要担心它。

关于c - 函数中的许多静态变量是否占用最多的内存?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3393064/

10-12 03:17