功能中有很多静态变量使用多达内存?

1 c static gcc cross-platform

我想为一些特定于操作系统(Linux/MacOSX/Windows)的调用编写一个跨平台包装器来获取CPU的内核数量等等.我的想法是将所有这些包含在具有静态变量的单个函数中,所以像未更改的核心数量只会被处理一次.

int getNumCPUCores()
{
    static int numCores = 0;

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

    return numCores;
}
Run Code Online (Sandbox Code Playgroud)

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

Jam*_*lis 5

An int是少数字节(在大多数现代平台上为四个或八个).除非你有数百万个静态变量或某些非常庞大类型的静态变量,否则你不必担心它.