在看LiteOS源代码的时候,遇到WAEK关键字,如下示例:
kernel\base\los_lockdep.c:
WEAK VOID OsLockDepPanic(enum LockDepErrType errType)
{
/* halt here */
(VOID)errType;
(VOID)LOS_IntLock();
OsBackTrace();
while (1) {}
}
这个宏定义出处在kernel\include\los_toolchain.h文件:
#ifndef WEAK
#define WEAK __attribute__((weak))
#endif
在C语言中,有符号有强弱的说法。符号指的是函数、变量的名字。强、弱符号就是针对全局函数和变量,下文称为全局符号来说的。