c/c++:在main之前运行指定代码

File : before_main.cpp
Type : c/c++
Brief : 在main之前运行指定代码


#include <iostream>

// 全局变量赋值
int bm_func1()
{
    std::cout << "Before main: func1\n";
    return 0;
}
int _bmf1 = bm_func1(); // 或者 static int _bmf1 = bm_func1();
int _bmf2 = []() //或者 static int _bmf2 = []()
{
    std::cout << "Before main: func2\n";
    return 0;
}();

// gcc,clang 可用
void __attribute__((constructor)) bm_func3()
    //或者static void __attribute__((constructor)) bm_func3()
{
    std::cout << "Before main: func3\n";
};

// 全局类的构造函数
class BmClass
{
public:
    BmClass()
    {
        std::cout << "Before main: class\n";
    }
};
BmClass _bmc; // 或者 static BmClass _bmc;


int main()
{
    std::cout << "In main function\n";
    return 0;
}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [ yehuohan@gmail.com ]

文章标题:c/c++:在main之前运行指定代码

本文作者:Y

发布时间:2018-03-18, 23:40:05

最后更新:2019-05-21, 20:06:10

原始链接:http://yehuohan.github.io/2018/03/18/Gist/c&c++/c-c-%E5%9C%A8main%E4%B9%8B%E5%89%8D%E8%BF%90%E8%A1%8C%E6%8C%87%E5%AE%9A%E4%BB%A3%E7%A0%81/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。