发现gcc有很多之前不明白甚至完全没有听说过的关键字,不知道这些都在什么地方会用上。

看个例子:

#include <stdio.h>

void __init()
{
    printf("before main\n");
}

void __exit()
{
    printf("after main\n");
}

void __init() __attribute__ ((constructor));
void __exit() __attribute__ ((destructor));

int main()
{
    printf("in main\n");

    return 0;
}

输出:

y@y-VirtualBox:/mnt/Documents/Training$ gcc -o test test.c
y@y-VirtualBox:/mnt/Documents/Training$ ./test
before main
in main
after main

稍微详细点的例子以及更多的属性在参考资料里多一些。但一直没有用到过,似乎并不是很实用的样子。

参考资料:

http://blog.csdn.net/starstarstone/article/details/7490612