什么是注册函数
将某个功能注册到系统中的函数。
在主函数运行起来的时候,这些信息已经被注册好了。
#include<stdio.h>
int arr[10];
__attribute__((constructor))
void test1 () {
arr[0] = 100;
}
__attribute__((constructor))
void test2 () {
arr[1] = 99;
}
__attribute__((constructor))
void test3 () {
arr[2] = 10086;
}
int main() {
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
return 0;
}
运行结果:
100 99 10086 0 0 0 0 0 0 0
利用__attribute__
关键字可以发现在主函数里没有调用任何函数,可运行结果确有给arr
赋值。
由此,我们可以初识注册函数——将某些功能或者信息注册到系统中,当我们系统中的主函数运行起来的时候,这些信息已经被注册好了。