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

使用这个功能,你就可以在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!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值