首页 > 其他分享 >弱函数使用

弱函数使用

时间:2023-01-16 14:55:43浏览次数:45  
标签:__ 函数 xxx weak 关键字 编译器 使用

what?

_weak函数是为了防止代码里面重复定义了同样函数名的函数,编译器在链接的时候会报错的一种手段。

why?

_weak 一般被用在公共的接口上,比如中断入口函数,假如在isr.c 定义了一个叫_weak xxx_IRQHandler的弱函数,当我在xxx,c中重新定义了一个xxx_IRQHandler(强符号)的时候,编译器就会直接执行xxx.c文件里的函数了,反之执行Isr.c里的弱函数。注意:弱函数被使用在不同的.c文件中才有意义

how?

在一个函数名前面加_weak ,c99并没有__weak关键字。此关键字是编译器外扩的。所以不同的编译器可能不一样。比如gcc编译链中并没有这个关键字。而是使用__attribute__((weak))代替。为了方便移植,我们可以宏定义,如下:

#ifndef __weak
#define __weak __attribute__((weak))
#endif

 

参考:(173条消息) _weak 弱函数_Yank_k的博客-CSDN博客_weak弱函数

标签:__,函数,xxx,weak,关键字,编译器,使用
From: https://www.cnblogs.com/lzqd/p/17055373.html

相关文章

  • C# .NET6 Serilog的使用和配置
    入口文件:Program.csusingSerilog;usingSerilog.Events;//创建SerilogLog.Logger=newLoggerConfiguration().MinimumLevel.Override("Microsoft",LogEven......
  • C语言 函数返回一位数组,二维数组
    一维数组方法:int*getArray(intn){inti,j;int*a=(int*)malloc(n*sizeof(int));//申请内存空间,大小为n个int长度。printf("请输入一维数组:");......
  • go string()内置函数和strings.Itoa()
    strconv.Itoa函数的参数是一个整型数字,它可以将数字转换成对应的字符串类型的数字。packagemainimport( "fmt" "strconv")funcmain(){ string_number:=97......
  • postman简单使用
    postman是什么?postman是一款网页调试工具,支持几乎所有类型的HTTP请求下载地址:https://www.getpostman.com/简单使用网页使用F12打开调试模式,CopyasacURL(bash)......
  • [disruptor]03-disruptor的使用及缺陷
    03-disruptor的使用及缺陷disruptor的使用disruptor的使用代码可以见git仓库,这里仅仅对使用流程做一下简单介绍。消费者读数据消费者读数据的步骤如下:注册消费者,此时......
  • 三、四(调优系统性能、使用ACL控制对文件的访问)
    三、调优系统性能(不是重点)                     四、使用ACL控制对文件的访问           ......
  • Forexclub:为什么石油和天然气公司正在考虑使用绿色氢气
    随着全球对绿色氢的兴趣日益浓厚,能源公司正在利用各种可再生能源项目为氢生产提供动力。由于全球风电厂数十年的发展,这种生产的一个主要来源是风能。绿色氢被许多人誉为一种......
  • MeterSphere接口测试模块中循环控制器的使用
    MeterSphere开源持续测试平台的“接口测试”模块具有灵活的接口场景编排设计,模块覆盖了多种接口协议,可自由组合接口自动化测试场景,为接口测试带来方便快捷的体验。其中,逻辑......
  • SQL 函数使用
    replace用函数修改行数据1、使用replacesqlUPDATEtitles_testSETemp_no=REPLACE(emp_no,10001,10005)WHEREid=5;2、使用insert有......
  • LyX中使用Biblatex
    LyX2.2对于Biblatex的支持不是很充分,LyX2.3.7的支持基本完善,变换比较大,下面仅以LyX2.3.7为例说明LyX中的Biblatex的使用及配置。以样式“gb7714-2015”为例。......