首页 > 其他分享 >__attribute__((weak))

__attribute__((weak))

时间:2023-07-13 18:55:05浏览次数:38  
标签:__ 调用 函数 符号 attribute weak 模块

参见:https://blog.csdn.net/q2519008/article/details/82774774

1.场景

A,B两个模块,A模块调用了不确定B模块是否提供了函数,但是又不得不调用,这个时候在A模块中再申明一个弱符号函数,即用weak,如果外部提供了调用外部的,如果没提供调用申明的。

2. 弱符号

若两个或两个以上全局符号(函数或变量名)名字一样,而其中之一声明为weak属性,则这些全局符号不会引发重定义错误。链接器会忽略弱符号,去使用普通的全局符号来解析所有对这些符号的引用,但当普通的全局符号不可用时,链接器会使用弱符号。当有函数或变量名可能被用户覆盖时,该函数或变量名可以声明为一个弱符号。

3. 示例

//模块A中调用func,但是不确定外部是否提供了该函数
...
extern int func(void);
...
int a = func();
...

如果直接这么调用,如果外部不提供该函数程序可能出现crash。
所以在本模块中__attribute__((weak))就派上了用场

int  __attribute__((weak))  func(......)
{
    return 0;
}

标签:__,调用,函数,符号,attribute,weak,模块
From: https://www.cnblogs.com/Netsharp/p/17551820.html

相关文章

  • two
    <!--  1过  2过  3过  4过  5过--><!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <title>Document</title></head><body>   <!--表格--&......
  • 第12天
    一、复制数组二、方法调试的基本内存原理先进后出 三、什么是基本数据类型和引用数据类型 ......
  • Parallel 与 ConcurrentBag<T> 这对儿黄金搭档
    〇、前言日常开发中经常会遇到数据统计,特别是关于报表的项目。数据处理的效率和准确度当然是首要关注点。本文主要介绍,如何通过Parallel来并行处理数据,并组合ConcurrentBag<T>集合,来将处理效率达到高点的同时,也能确保数据的准确。一、ConcurrentBag<T>简介1、简介与源码......
  • scrapy架构
    1selenium爬取京东商品信息importtimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeys#键盘按键操作fromselenium.webdriver.chrome.optionsimportOptionsdefget_goods(bro):......
  • 如何解决 React.useEffect() 的无限循环
    [如何解决React.useEffect()的无限循环-react.useeffect](https://www.51cto.com/article/654928.html)使用useEffect()时,你可能会遇到一个陷阱,那就是组件渲染的无限循环。在这篇文章中,会讲一下产生无限循环的常见场景以及如何避免它们。 useEffect()主要用来管理副作用,比......
  • C语言-05
    预处理/*---用#号开头的命令是预处理命令---“预处理”即:预先处理,在编译前对代码进行一个预先处理include<文件.h>//这个是文件包含命令总上所述,#include<stdio.h>即是:执行“预处理文件包含stdio.h”*/# include/*当main......
  • SciChart使用教程1
    安装完SciChart以后,一般会在桌面建立一个“SciChartQuickLinks”的文件夹。文件夹里有一个SciChartv5WPFDLLsDirectory的快捷方式,双击后跳转到DLL文件夹目录。  文件夹下有三个不同.NET版本的目录,根据自己项目的版本引用对应的库。在自己的项目中引用除下面两个DLL之......
  • 基础数学
    一些基本的定义-逆元:若$ax\equiv1\pmodp$则称$x$是在模$p$意义下$a$的逆元,记作$a^{-1}$。-质因子次数和:$n$当中质因子$p$的次数为$v_p(n)$。##费马小定理$$a^{p-1}\equiv1\pmodp$$限制:$p$为质数,$a$不是$p$的倍数##求逆元的方法-费马小定理:显......
  • 反射
    反射反射机制:将类的各个组成部分封装为其他对象。Java的类经过javac编译,生成class文件,在class文件中,一个类分为成员变量、构造方法、成员方法三类,再经过类加载器加载进内存,到内存中为class类对象,class类对象中成员变量为FieldField[]、构造方法为Constructor[]]、成员方法为M......
  • python 生成器
    目录python生成器推导式示例python生成器推导式通过列表生成式(列表推导式),我们可以直接创建一个列表但是受到内存限制,列表容量是有限的而且创建一个100万元素的列表,会占用很大的存储空如果我们只需要访问前面几个元素,那后面大多数元素占用的空间就白白浪费了所以,如果列表......