美文网首页
__attribute__((constructor))

__attribute__((constructor))

作者: 笑破天 | 来源:发表于2022-08-10 12:31 被阅读0次

    该函数会在+load之后main之前自动执行。数字越小优先级越高,1 ~ 100 为系统保留。

    经测试destructor是在exit之后自动调用(main里面return EXIT_SUCCESS、手动调用exit()、上滑kill应用这三种都会调用,abort()不会)

    int main(int argc, char * argv[]) {
        NSLog(@"---AttributeTest--%s",__func__);
        ...
    //    return UIApplicationMain(argc, argv, nil, appDelegateClassName);
        return EXIT_SUCCESS;
    }
    
    static  __attribute__((constructor(101))) void before1()
    {
        NSLog(@"---AttributeTest--%s",__func__);
    }
    static  __attribute__((constructor(102))) void before2()
    {
        NSLog(@"---AttributeTest--%s",__func__);
    }
    
    
    static  __attribute__((destructor(101))) void after1()
    {
        NSLog(@"---AttributeTest--%s",__func__);
    }
    static  __attribute__((destructor(102))) void after2()
    {
        NSLog(@"---AttributeTest--%s",__func__);
    }
    

    参考:
    __attribute__详解及应用
    gcc官方手册-Declaring Attributes of Functions

    相关文章

      网友评论

          本文标题:__attribute__((constructor))

          本文链接:https://www.haomeiwen.com/subject/skfawrtx.html