本文共 770 字,大约阅读时间需要 2 分钟。
code:https://github.com/OAID/Tengine
图片,代码都来自以上项目。
Tengine最近重构了代码,上一篇文章是最新版本的注册实现。这里说一下前面版本的注册。
主要是通过__attribute__((constructor))
来实现在main函数之前自动调用函数进行注册
#define DECLARE_AUTO_INIT_FUNC(func_name) static void(func_name)(void) __attribute__((constructor))#define DECLARE_AUTO_EXIT_FUNC(func_name) static void(func_name)(void) __attribute__((destructor))
code
#include#include static int * g_count = NULL;__attribute__((constructor)) void load_file(){ printf("Constructor is called.\n");}__attribute__((destructor)) void unload_file(){ printf("destructor is called.\n");}int main(){ printf ("this is main function\n"); return 0;}
执行结果如下:
Constructor is called. this is main function destructor is called.转载地址:http://fuhws.baihongyu.com/