__weak是一个宏,和__packed是同一种东西都是gcc的扩展属性:
#define __packed __attribute__((packed))
#define __weak __attribute__((weak))
#define __packed __attribute__((packed))
#define __weak __attribute__((weak))
如果这个关键字用在函数定义上面,一般情况下和一般函数没有两样。但是当有一个同名函数但是不带__weak被定义时,所有对这个函数的调用都是指向后者(不带__weak那个), 如果有两个一样的函数都用了__weak,那么真正调用那个,就要看连接器了。
原文地址:https://blog.csdn.net/adaptiver/article/details/6695637
本文详细介绍了GCC编译器中的两个扩展属性__packed和__weak。解释了这些属性如何应用于函数定义,并探讨了它们在链接过程中的行为。特别是当存在多个同名函数时,__weak属性的作用变得尤为关键。

4581

被折叠的 条评论
为什么被折叠?



