色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言中,同一個函數能不能被定義兩次?

學益得智能硬件 ? 來源:學益得智能硬件 ? 2024-05-11 18:27 ? 次閱讀

C語言中,同一個函數能不能被定義兩次?

稍微有點C語言基礎的同學,一定知道不能這樣做。

最近有同學在學習STM32,他就發現了這么一個問題,有些函數前面加了 __weak,然后這個函數就可以被重新定義。

這種情況常見于中斷函數里面,意思就是用戶可以自己定義,也可以用系統提供的。

__weak并不是C語言里面的關鍵字,具體的實現還是得看編譯器。

比如在keil里面,__weak就是一個宏定義,使用了C語言里面的 attribute 機制,這個機制我們在前面也講過,里面可以用 packed aligned unused 等等。

今天我們再來補充一個,weak。

比如在 test.c 文件中定義了函數 test,如果在 main.c 里面又定義了一次,那編譯的時候,肯定會提示函數重復定義,一個函數不能被定義兩次。

但是如果在某個 test 函數前面加上 __attribute__((weak)),編譯就能順利通過。

并且運行的時候,默認調用的也是前面沒有 weak 修飾的函數。

weak 就是告訴編譯器,該函數為弱定義,作為備選,如果用戶自己定義了,還是優先調用用戶定義的函數。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2271

    文章

    10923

    瀏覽量

    357105
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137438

原文標題:函數也能重復定義

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    C語言中定義的應用

    C語言中,宏定義種預處理指令,用于在代碼中定義和使用常量、函數或代碼片段的替代。
    發表于 08-17 15:33 ?892次閱讀

    C語言中定義的使用技巧

    #define命令是C語言中定義命令,它用來將
    發表于 09-05 10:12 ?1291次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>宏<b class='flag-5'>定義</b>的使用技巧

    C語言中結構體能不能相加

    C語言中,結構體能不能相加?
    的頭像 發表于 12-19 17:04 ?1335次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>結構體<b class='flag-5'>能不能</b>相加

    STM32F103能在PWM周期內對同一個AD通道采樣兩次嗎?

    求助各位大神: 小弟在此感謝:STM32F103,,希望能在PWM周期內對同一個AD通道采樣兩次?或者多次,可以控制采樣起點,連續采樣不合適。有什么辦法嗎?類似于在周期下溢點,上溢
    發表于 04-17 07:25

    請問ISO3082中兩個地GND1和GND2能不能連接到同一個地上?

    ISO3082中兩個地 GND1和GND2能不能連接到同一個地上
    發表于 12-02 07:29

    si4463的發送和接收r能不能使用同一個頻點?

    si4463的發送和接收r能不能使用同一個頻點,怎么用?
    發表于 09-14 10:07

    同一個定時器能不能既有輸出比較又有輸入捕獲?

    同一個定時器,比如TIM1能不能設置通道1位定時器比較,通道2位定時器輸入捕獲
    發表于 10-24 08:10

    電池能不能修復?

    電池能不能修復? 電池修復作為新生事物,許多人對它不了解,也有許多人對它知半解。那么電池到底能不能修復呢?
    發表于 11-23 10:40 ?1103次閱讀

    C語言中的宏定義

    #define命令是C語言中定義命令,它用來將
    的頭像 發表于 09-28 16:05 ?3496次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言中</b>的宏<b class='flag-5'>定義</b>

    c源程序至少包括函數

    C源程序至少包括函數C
    的頭像 發表于 11-26 09:01 ?1225次閱讀

    如何給C語言中函數定義兩個不同的名字?

    最近有位哥問我,如何給C語言中函數定義兩個不同的名字?就是這兩個名字都是指向
    的頭像 發表于 12-19 16:21 ?910次閱讀

    同VLAN不同的網段能不能互通?

    同VLAN不同的網段能不能互通? 同一個VLAN中的設備擁有相同的網絡地址范圍,因此它們可以通過該VLAN進行通信。而不同VLAN中的設備擁有不同的網絡地址范圍,它們通常不能直接互通。然而,在某些
    的頭像 發表于 02-04 11:21 ?3253次閱讀

    使用C語言實現函數模板

      用C語言能不能實現通用的函數,既能完成整數的相加,又能完成浮點數的相加?
    的頭像 發表于 11-09 11:38 ?450次閱讀

    C語言中的頭文件能不能重復包含

    C語言中的頭文件能不能重復包含? 比如代碼寫成這樣,stdio.h 連續包含了兩次。 #include #include int main(){ printf("helloworld
    的頭像 發表于 11-26 17:19 ?218次閱讀

    C語言中申請的堆內存能不能自動釋放

    C語言中申請的堆內存能不能自動釋放?每次都要手動 free 太麻煩,也容易忘記。 學過 C++ 的同學,應該首先能想到智能指針。 但是這是C
    的頭像 發表于 11-27 09:33 ?161次閱讀
    主站蜘蛛池模板: 2022精品福利在线小视频 | 久久综合亚洲色hezyo | 果冻传媒剧情在线观看 | 一个人在线观看免费高清视频 | 精品粉嫩BBWBBZBBW | 亚洲精品视频区 | 门鱼电影完整版免费版 | 亚洲免费人成在线视频观看 | 久久久久99精品成人片三人毛片 | 久久综合给会久久狠狠狠 | 99久久伊人一区二区yy5o99 | 中俄两军在日本海等上空战略巡航 | 国产在线精品亚洲二品区 | 久久亚洲高清观看 | 蜜芽一二三区 | 第九色区av天堂 | 翁公与小莹在客厅激情 | 日本一卡二卡三卡四卡无卡免费播放 | 国产黄大片在线视频 | 鸭子玩富婆流白浆视频 | 秘密教学26我们在做一次吧免费 | xart欧美一区在线播放 | 亚洲爆乳少妇精品无码专区 | 97视频在线观看免费视频 | 亚洲视频无码高清在线 | 暖暖的视频完整视频免费韩国 | xx69美国| 久久婷婷丁香五月色综合啪免费 | 亚洲国产AV一区二区三区四区 | 日韩免费一区 | 国产亚洲精品久久播放 | 月夜直播免费看 | 久久国产36精品色熟妇 | 岛国片免费在线观看 | 精品久久香蕉国产线看观看麻豆 | 97资源总站(中文字幕) | 日本电影免费久久精品 | 人妻免费久久久久久久了 | 久久久欧美国产精品人妻噜噜 | 午夜爽喷水无码成人18禁三级 | 日韩精品欧美在线视频在线 |