中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C/C++函數重復定義、頭文件重復包含、互相包含問題

發布時間:2020-07-18 08:04:38 來源:網絡 閱讀:5008 作者:李昊華 欄目:編程語言


1、避免頭文件重復包含


// test.h 此段宏的意思是如果定義了宏變量TEST_H_則不再定義它
#ifndef TEST_H_
#define TEST_H_
//頭文件內容
#endif

或者

// test.h 告訴預編譯器只包含一次
#pragma once


2、避免重復定義


  不要將函數定義放置在頭文件里面,正確的做法是頭文件放置函數聲明,源文件放置函數定義。因為源文件是分別編譯的,假如頭文件放置了函數定義,包含該頭文件的每一個源文件都會定義相應的函數,從而導致重復定義。但是幾種情況可以例外:內聯函數的定義、類的定義、const和static變量,以及模板類/函數要求頭文件必須包含定義才可以模板化。


3、避免頭文件互相包含和循環包含


  頭文件互相包含會導致遞歸包含,頭文件互相依賴的邏輯本身就是錯誤的而且無法實現,頭文件循環包含同理(比如a.h包含b.h,b.h包含c.h,c.h包含a.h)。正確的做法是將頭文件的依賴降到最小,盡量在源文件中包含頭文件,頭文件中盡量用前置聲明(盡量使用指針和引用,相關定義放到源文件中 等)。前置聲明的類是不完全類型,不完全類型只能以有限方式使用。不能定義該類型的對象。不完全類型只能用于定義指向該類型的指針及引用,或者用于聲明(而不是定義)使用該類型作為形參類型或返回類型的函數。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

旺苍县| 宁晋县| 华坪县| 台安县| 宜阳县| 泗阳县| 尤溪县| 时尚| 永寿县| 铜陵市| 达孜县| 桓台县| 木兰县| 广安市| 乌兰察布市| 巴林左旗| 邓州市| 花莲县| 安泽县| 蚌埠市| 黄石市| 邹平县| 桐柏县| 漳平市| 丽水市| 昭通市| 新津县| 湖州市| 沙坪坝区| 沾益县| 万州区| 仙居县| 托里县| 溆浦县| 东乌| 凌云县| 清水河县| 仁化县| 获嘉县| 隆子县| 皮山县|