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之前运行指定代码

本文作者:Yehuohanxing

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

最后更新:2018-04-03, 23:26:42

原始链接:http://yehuohan.github.io/2018/03/18/Gist/c&c++/c-c-在main之前运行指定代码/

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

目录