主变量

时间:2019-06-13 20:28:50

标签: c++ static

main函数在程序启动时被调用,并且不允许递归调用它。这意味着在执行程序时,main函数只能有一个堆栈帧。如您所知,如果某些东西仅被实例化一次,则可以将其设为静态。考虑到存在一个巨大的结构,该结构在main中实例化,因此在程序的生命周期中仅实例化一次。通过将变量设为静态,分配几乎在编译时完成,并且不会浪费堆栈空间。

int main(int argc, char** argv) {
    // Huge structure, needs to be initialized with
    // program arguments
    ScriptInterpreter interp { argc, argv };
    bool success = interp.run();
    return success ? EXIT_SUCCESS : EXIT_FAILURE;
}

问题1:在主要静态变量中创建变量是一种好习惯吗?

int main(int argc, char** argv) {
    ...
    static ScriptInterpreter interp { argc, argv };
    ...
}

问题2:是否有编译器已经对main函数进行了隐式优化?

0 个答案:

没有答案