关闭

如何在C语言中使用constructor和destructor,gcc环境

429人阅读 评论(0) 收藏 举报

使用这个功能,你就可以在main函数执行之前,和main函数退出之后,执行你自己想要的操作。

示例:


#include <stdio.h>
#include <stdlib.h>




static void start (void)  __attribute__ ((constructor));
static void stop  (void)  __attribute__ ((destructor));




int main (int argc, char* argv[])
{
printf ("%s is starting...\n", argv[0]);
printf ("start == %p\n", start);
printf ("stop  == %p\n", stop);


printf ("%s is stopping...\n", argv[0]);
return 0;
}


void start (void)
{
printf ("Hello, world\n");
}


void stop (void)
{
printf ("Goodbye!\n");
}



运行结果:

 Hello, world
../bin/constructor_destructor is starting...
start == 0x804845a
stop  == 0x804846e
../bin/constructor_destructor is stopping...
Goodbye!

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8442次
    • 积分:145
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:6篇
    • 译文:0篇
    • 评论:2条
    最新评论