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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

谷歌編碼規(guī)范的前置聲明

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

定義

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

“前向聲明”是沒有關(guān)聯(lián)定義的實(shí)體聲明。

前置聲明的作用

避免重復(fù)定義變量

避免引入函數(shù)定義/聲明文件,從而函數(shù)文件發(fā)生更改時(shí)不會(huì)重新編譯依賴文件

解決循環(huán)依賴問題

優(yōu)點(diǎn)

節(jié)約編譯時(shí)間,前置聲明了一個(gè)類,那么只會(huì)編譯這個(gè)類,而不會(huì)編譯與之同屬一個(gè)文件的其它代碼。

處理兩個(gè)類互相依賴的問題,兩個(gè)類互相包含

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

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

缺點(diǎn)

前置聲明隱藏了依賴關(guān)系,頭文件改動(dòng)時(shí),用戶的代碼會(huì)跳過必要的重新編譯過程。

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

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

前置聲明的類因?yàn)橹荒苁褂弥羔樆蛞茫?dāng)刪除一個(gè)前置聲明的類的指針時(shí),此行為是未定義的。

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

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

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

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

建議

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

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 谷歌
    +關(guān)注

    關(guān)注

    27

    文章

    6161

    瀏覽量

    105300
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    940

    瀏覽量

    54814
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4327

    瀏覽量

    62571

原文標(biāo)題:谷歌編碼規(guī)范的前置聲明

文章出處:【微信號(hào):typedef,微信公眾號(hào):typedef】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    安富萊C語(yǔ)言編碼規(guī)范

    所謂無規(guī)矩不成方圓。任何團(tuán)隊(duì),規(guī)范都是怎么也繞不開的話題。特別是在我們搞嵌入式C開發(fā)的,代碼規(guī)范乃是開發(fā)的重中之重。有太多的理由去做規(guī)范,因?yàn)槊總€(gè)人的代碼編寫喜好不同,代碼風(fēng)格也迥然不同。每一個(gè)程序員心目中對(duì)好代碼都有自己的主見
    發(fā)表于 07-19 15:19 ?1303次閱讀

    ADS1281 PCM編碼規(guī)范應(yīng)該在哪里找?

    的是,根據(jù)文檔M0是符合PCM編碼的,請(qǐng)問這個(gè)PCM編碼規(guī)范應(yīng)該在哪里找?或者它是符合怎么樣的規(guī)范。如何解碼 解碼公式1生成的yn也是符合PCM編碼
    發(fā)表于 12-05 08:33

    AC97和HD聲卡規(guī)范簡(jiǎn)介和前置音頻接口的連接

    AC97和HD聲卡規(guī)范簡(jiǎn)介和前置音頻接口的連接英特爾在AC97音頻標(biāo)準(zhǔn)之后,又推出了HD(高保真)音頻標(biāo)準(zhǔn)。微軟的新操作系統(tǒng)Vista推出UAA音頻。這些音頻標(biāo)準(zhǔn)對(duì)機(jī)箱的前置音頻面板和接口都有各自
    發(fā)表于 11-25 17:02

    聲明提前和函數(shù)的聲明前置

    #hello,JS:03-02 聲明提前和立即執(zhí)行函數(shù)
    發(fā)表于 07-08 06:04

    嵌入式c語(yǔ)言編碼規(guī)范

    `學(xué)習(xí)嵌入式的同學(xué)應(yīng)該首先掌握嵌入式編碼規(guī)范,這樣才能更好的嵌入式系統(tǒng)。下面就從這幾個(gè)方面講解一下嵌入式c編碼規(guī)范。注釋風(fēng)格、排版風(fēng)格、頭文件風(fēng)格、變量定義、宏定義、函數(shù)1 注釋風(fēng)格1
    發(fā)表于 10-31 14:50

    嵌入式c語(yǔ)言編碼規(guī)范

    學(xué)習(xí)嵌入式的同學(xué)應(yīng)該首先掌握嵌入式編碼規(guī)范,這樣才能更好的嵌入式系統(tǒng)。下面就從這幾個(gè)方面講解一下嵌入式c編碼規(guī)范。注釋風(fēng)格、排版風(fēng)格、頭文件風(fēng)格、變量定義、宏定義、函數(shù)1 注釋風(fēng)格1.
    發(fā)表于 11-07 15:17

    Python編碼規(guī)范分享

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

    請(qǐng)問車載嵌入式軟件如何聲明符合MISRA語(yǔ)言規(guī)范

    請(qǐng)問車載嵌入式軟件如何聲明符合MISRA語(yǔ)言規(guī)范?ISO26262對(duì)于軟件開發(fā)的要求是什么?
    發(fā)表于 12-27 07:07

    HarmonyOS鴻蒙原生應(yīng)用開發(fā)設(shè)計(jì)- 隱私聲明

    HarmonyOS設(shè)計(jì)文檔中,為大家提供了獨(dú)特的隱私聲明,開發(fā)者可以根據(jù)需要直接引用。 開發(fā)者直接使用官方提供的隱私聲明內(nèi)容,既可以符合HarmonyOS原生應(yīng)用的開發(fā)上架運(yùn)營(yíng)規(guī)范,又可
    發(fā)表于 10-31 14:16

    華為的verilog編碼規(guī)范

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

    C++語(yǔ)言編碼規(guī)范詳細(xì)說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是C++語(yǔ)言編碼規(guī)范詳細(xì)說明。
    發(fā)表于 01-07 16:19 ?14次下載
    C++語(yǔ)言<b class='flag-5'>編碼</b><b class='flag-5'>規(guī)范</b>詳細(xì)說明

    Java Script的編碼規(guī)范詳細(xì)說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是Java Script的編碼規(guī)范詳細(xì)說明。
    發(fā)表于 01-10 17:17 ?7次下載
    Java Script的<b class='flag-5'>編碼</b><b class='flag-5'>規(guī)范</b>詳細(xì)說明

    AN-562:過濾ADV719x視頻編碼器內(nèi)部濾波器規(guī)范

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

    編碼規(guī)范的本質(zhì)是什么

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

    嵌入式軟件之c語(yǔ)言編碼規(guī)范

    嵌入式軟件之c語(yǔ)言編碼規(guī)范
    發(fā)表于 10-28 18:13 ?28次下載
    主站蜘蛛池模板: 国产成人ae在线观看网站站| 久久99re热在线观看视频| 久欠热视频精品首页| 天天夜夜草草久久亚洲香蕉| 99热久这里都是精品小草 | 光棍天堂在线a| 美女穿丝袜被狂躁动态图| 亚洲精品久久国产高清| 成年人视频免费在线播放| 麻豆婷婷狠狠色18禁久久| 亚洲免费视频在线观看| 国产成人亚洲精品老王| 轻轻cao| 99国产精品免费视频| 黄页网站免费视频大全9| 无限好资源免费观看| 成人中文字幕在线| 欧美 国产 日产 韩国 在线| 曰本女人牲交视频免费| 黄色直接观看| 亚洲高清无在码在线无弹窗| 高清午夜福利电影在线| 拍戏被CAO翻了H| 99精品久久精品一区二区| 久久午夜夜伦痒痒想咳嗽P| 亚洲欧美日韩高清中文在线| 国产麻豆AV伦| 无码骚夜夜精品| 国产高清-国产av| 三级成年网站在线观看| u15女少天堂写真| 欧美506070| BT7086福利二区最新| 男人天堂黄色| 99精品视频在线观看免费播放| 老头狠狠挺进小莹体内视频| 野花韩国高清完整版在线观看5| 韩国精品无码少妇在线观看网站| 无修肉动漫在线观看影片| 国产成人精品电影| 外女思春台湾三级|