女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

谷歌編碼規范的前置聲明

typedef ? 來源:typedef ? 2023-01-04 09:42 ? 次閱讀

定義

A "forward declaration" is a declaration of an entity without an associated definition.

“前向聲明”是沒有關聯定義的實體聲明。

前置聲明的作用

避免重復定義變量

避免引入函數定義/聲明文件,從而函數文件發生更改時不會重新編譯依賴文件

解決循環依賴問題

優點

節約編譯時間,前置聲明了一個類,那么只會編譯這個類,而不會編譯與之同屬一個文件的其它代碼。

處理兩個類互相依賴的問題,兩個類互相包含

//A.h
#include"B.h"
classA{Bb;};

//B.h
#include"A.h"
classB{Aa;};

缺點

前置聲明隱藏了依賴關系,頭文件改動時,用戶的代碼會跳過必要的重新編譯過程。

前置聲明可能會被庫的后續更改所破壞。前置聲明函數或模板有時會妨礙頭文件開發者變動其API。比如想改類的名稱,在大型項目中,可以采用兼容做法,將舊類名作為新類名的別名,但是別名不能作為前置聲明,所以需要修改類名則需要修改所有前置聲明了該類的地方,可能來自多個部門的開發人員用過,這就不太好處理了。

前置聲明來自 std:: 的 symbol 時,其行為未定義。

前置聲明的類因為只能使用指針或引用,當刪除一個前置聲明的類的指針時,此行為是未定義的。

很難判斷什么時候該用前置聲明,什么時候該用 #include。極端情況下,用前置聲明代替 #include 可能會悄悄地改變代碼的含義:

//b.h:
structB{};
structD:B{};

//good_user.cc:
#include"b.h"
voidf(B*);
voidf(void*);
voidtest(D*x){f(x);}//Callsf(B*)

若把#include換成前置聲明,由于聲明時不知道D是B的子類,test()中f(x)就會導致f(void*)被調用,而不是f(B*)。

建議

盡可能避免使用前向聲明。相反,請包含所需的頭文件。

審核編輯:湯梓紅

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

    關注

    27

    文章

    6223

    瀏覽量

    107523
  • 編碼
    +關注

    關注

    6

    文章

    967

    瀏覽量

    55491
  • 函數
    +關注

    關注

    3

    文章

    4370

    瀏覽量

    64193

原文標題:谷歌編碼規范的前置聲明

文章出處:【微信號:typedef,微信公眾號:typedef】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    安富萊C語言編碼規范

    所謂無規矩不成方圓。任何團隊,規范都是怎么也繞不開的話題。特別是在我們搞嵌入式C開發的,代碼規范乃是開發的重中之重。有太多的理由去做規范,因為每個人的代碼編寫喜好不同,代碼風格也迥然不同。每一個程序員心目中對好代碼都有自己的主見
    發表于 07-19 15:19 ?1449次閱讀

    ADS1281 PCM編碼規范應該在哪里找?

    的是,根據文檔M0是符合PCM編碼的,請問這個PCM編碼規范應該在哪里找?或者它是符合怎么樣的規范。如何解碼 解碼公式1生成的yn也是符合PCM編碼
    發表于 12-05 08:33

    AC97和HD聲卡規范簡介和前置音頻接口的連接

    AC97和HD聲卡規范簡介和前置音頻接口的連接英特爾在AC97音頻標準之后,又推出了HD(高保真)音頻標準。微軟的新操作系統Vista推出UAA音頻。這些音頻標準對機箱的前置音頻面板和接口都有各自
    發表于 11-25 17:02

    聲明提前和函數的聲明前置

    #hello,JS:03-02 聲明提前和立即執行函數
    發表于 07-08 06:04

    嵌入式c語言編碼規范

    `學習嵌入式的同學應該首先掌握嵌入式編碼規范,這樣才能更好的嵌入式系統。下面就從這幾個方面講解一下嵌入式c編碼規范。注釋風格、排版風格、頭文件風格、變量定義、宏定義、函數1 注釋風格1
    發表于 10-31 14:50

    嵌入式c語言編碼規范

    學習嵌入式的同學應該首先掌握嵌入式編碼規范,這樣才能更好的嵌入式系統。下面就從這幾個方面講解一下嵌入式c編碼規范。注釋風格、排版風格、頭文件風格、變量定義、宏定義、函數1 注釋風格1.
    發表于 11-07 15:17

    Python編碼規范分享

    國際規范名:PEP 8變量名規范(標識符規范)字符串函數名小寫, 多個單詞用 _ 分隔開由字母數字或下劃線組成,首字母不能為數字 2. 不能為關鍵字 3. 建議使用駝峰命名法 搜字母小寫,第二個單詞
    發表于 10-27 07:15

    請問車載嵌入式軟件如何聲明符合MISRA語言規范

    請問車載嵌入式軟件如何聲明符合MISRA語言規范?ISO26262對于軟件開發的要求是什么?
    發表于 12-27 07:07

    HarmonyOS鴻蒙原生應用開發設計- 隱私聲明

    HarmonyOS設計文檔中,為大家提供了獨特的隱私聲明,開發者可以根據需要直接引用。 開發者直接使用官方提供的隱私聲明內容,既可以符合HarmonyOS原生應用的開發上架運營規范,又可
    發表于 10-31 14:16

    華為的verilog編碼規范

    華為的verilog編碼規范
    發表于 11-01 08:41 ?41次下載
    華為的verilog<b class='flag-5'>編碼</b><b class='flag-5'>規范</b>

    C++語言編碼規范詳細說明

    本文檔的主要內容詳細介紹的是C++語言編碼規范詳細說明。
    發表于 01-07 16:19 ?18次下載
    C++語言<b class='flag-5'>編碼</b><b class='flag-5'>規范</b>詳細說明

    Java Script的編碼規范詳細說明

    本文檔的主要內容詳細介紹的是Java Script的編碼規范詳細說明。
    發表于 01-10 17:17 ?8次下載
    Java Script的<b class='flag-5'>編碼</b><b class='flag-5'>規范</b>詳細說明

    AN-562:過濾ADV719x視頻編碼器內部濾波器規范

    AN-562:過濾ADV719x視頻編碼器內部濾波器規范
    發表于 04-21 10:23 ?8次下載
    AN-562:過濾ADV719x視頻<b class='flag-5'>編碼</b>器內部濾波器<b class='flag-5'>規范</b>

    編碼規范的本質是什么

    不知不覺間,代碼也寫了二十余載,我已成精了。借著過來人的身份和語氣,有一件事情我一直都特別喜歡吐槽:無論過去多少年,中國的嵌入式軟件開發者群體似乎一直對一個叫做“編碼規范”的東西趨之若鶩,仿佛
    的頭像 發表于 08-16 14:23 ?2418次閱讀

    嵌入式軟件之c語言編碼規范

    嵌入式軟件之c語言編碼規范
    發表于 10-28 18:13 ?28次下載