__weak可以应用于函数的声明和实现.
若使用__weak修饰声明 __weak void function(void);
执行 function(); 语句时,当前文件中实现了function函数则调用本文件中的function函数,否则执行一条NOP空操作.
若使用__weak修饰实现
__weak void function(void) {
}
执行 function(); 语句时,实现了未使用__weak修饰的function函数则调用此函数.否则调用使用__weak修饰的函数.
典型应用
key.h:
void keyEvent(void);
key.c
__weak void keyEvent() {}
while(1){
if(发现按键) keyEvent();
}
user.c:
void keyEvent() {
}
方便的实现了事件捕获和相应的隔离.酷炫.