娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年05月06日(星期二)

2018年05月06日 | 單片機C語言頭文件 #ifndef/#define/#endif使用詳解

發布者:山寶寶 來源: eefocus關鍵字:單片機  C語言  頭文件 手機看文章 掃描二維碼
隨時隨地手機看文章

想必很多人都看過“頭文件中的 #ifndef/#define/#endif 防止該頭文件被重復引用”。但是是否能理解“被重復引用”是什么意思?是不能在不同的兩個文件中使用include來包含這個頭文件嗎?如果頭文件被重復引用了,會產生什么后果?是不是所有的頭文件中都要加入#ifndef/#define/#endif 這些代碼


其實“被重復引用”是指一個頭文件在同一個cpp文件中被include了多次,這種錯誤常常是由于include嵌套造成的。比如:存在a.h文件#include "c.h"而此時b.cpp文件導入了#include "a.h" 和#include "c.h"此時就會造成c.h重復引用。


頭文件被重復引用引起的后果:

有些頭文件重復引用只是增加了編譯工作的工作量,不會引起太大的問題,僅僅是編譯效率低一些,但是對于大工程而言編譯效率低下那將是一件多么痛苦的事情。
有些頭文件重復包含,會引起錯誤,比如在頭文件中定義了全局變量(雖然這種方式不被推薦,但確實是C規范允許的)這種會引起重復定義。


是不是所有的頭文件中都要加入#ifndef/#define/#endif 這些代碼?


答案:不是一定要加,但是不管怎樣,用ifnde xxx #define xxx#endif或者其他方式避免頭文件重復包含,只有好處沒有壞處。個人覺得培養一個好的編程習慣是學習編程的一個重要分支。


    下面給一個#ifndef/#define/#endif的格式:

    #ifndef A_H意思是"if not define a.h"  如果不存在a.h

    接著的語句應該#define A_H  就引入a.h

    最后一句應該寫#endif   否則不需要引入

--------------------------------------------------------------------------------------------------
#ifndef GRAPHICS_H // 防止graphics.h被重復引用 
#define GRAPHICS_H 


#include // 引用標準庫的頭文件 
… 
#include “header.h” // 引用非標準庫的頭文件 
… 
void Function1(…); // 全局函數聲明 
… 
class Box // 類結構聲明 

… 
}; 
#endif
--------------------------------------------------------------------------------------------------


關鍵字:單片機  C語言  頭文件 引用地址:單片機C語言頭文件 #ifndef/#define/#endif使用詳解

上一篇:各變量在MCU中的存放位置ram or flash
下一篇:最后一頁

推薦閱讀

5月1日,1374架無人機在西安城墻南門編隊飛行表演,擺出西安城墻、絲綢之路、四十周年等圖案,創下“數量最多無人機表演吉尼斯世界紀錄”。不過,一些網友從現場拍到的視頻顯示,當天演出現場出現意外,圖案的左半部分變成了“亂碼”。?演出現場圖案的左半部分變成了“亂碼“ 圖??一份來自采購招標網的《關于春舞大西安城墻千架無人機光影盛典活動無人...
兩年才有一次的上海車展總能獲得超高的關注度,當上海車展遇上自動駕駛,擦出的火花自然更是耀眼。大概是為了呼應本次上海車展“共創·美好未來”的主題,今年的上海車展“未來”味道就很濃厚。比如在本次車展上,我們將能看到大眾ID Roomzz概念車、寶馬BMW Vision iNEXT概念車、奧迪AI:me概念車等,這些概念車大都具備了超高的自動駕駛能力,并且搭配...
向實現汽車市場中的安全關鍵3D圖形邁出第一步Imagination Technologies宣布,公司已為其汽車圖形處理器(GPU)開發全新的OpenGL? SC(Safety-Critical,安全關鍵)2.0驅動程序,從而使整車廠(OEM)和一級供應商(Tier 1)可以在安全關鍵型應用中受益于GPU加速。數字儀表盤、刻度盤、儀表集群、駕駛艙域控制器、環視顯示器和先進駕駛輔助系統(ADAS)...
集微網消息,日本村田制作所將在未來幾個月內開始批量生產全固態電池,主要客戶為耳機和其他可穿戴設備的制造商。據日經亞洲評論5月3日報道,村田為了生產全固態電池,放棄了短期利潤并試圖打開一個新的利基市場。村田將在滋賀縣的Yasu分部建立電池生產線。村田制作所將索尼公司的鋰離子電池技術與為生產多層陶瓷電容器而開發的層壓技術相結合,實現了產能...

史海拾趣

問答坊 | AI 解惑

基于32位RISC處理器之SoC平臺的Linux操作系統實現

摘要: 本文會介紹如何在兼容ARM V4指令集的32位RISC處理器(FA526)所構建的SoC平臺上(即FIE8100),運用智原科技所提供的FA526-Linux開發包通過 armboot裝載Linux操作系統。使開發人員可以在基于FIE8100 SoC的仿真平臺-MediaCreative!上進行二 ...…

查看全部問答∨

labview教材 (word格式)

labview教材 (word格式) …

查看全部問答∨

為什么我在網站下載芯片資料都是EXE格式的?

為什么我在貴網站下載芯片資料都是EXE格式的?…

查看全部問答∨

了解一下AATI 原廠的手機產品應用框圖!

AnalogicTech offers a complete portfolio of products for smartphones and other handheld equipment to fully optimize available energy, minimize losses, and prolong battery life.   For Li-ion polymer batteries, linear ...…

查看全部問答∨

高速串行接口的編碼技術(8B10B)

高速串行接口的編碼技術(8B10B)…

查看全部問答∨

LED驅動電源設計考量--teleda

LED由于環保、壽命長、光電效率高等眾多優點,近年來在各行業應用得以快速發展,LED的驅動電源成了關注熱點,理論上,LED的使用壽命在10萬小時以上,但在實際應用過程中,由于驅動電源的設計及驅動方式選擇不當,使LED極易損壞.隨著LED的應用日益廣泛,LED ...…

查看全部問答∨

DSP頭文件的問題(.inc和.h)

DSP頭文件的.inc和.h這兩種格式定義有什么本質的區別?…

查看全部問答∨

FLASH BLOCK_STATUS_RESERVED 在哪里標記

各位大哥:     我在查看 6410 的 EBOOT 里面都找不到 FLASH BLOCK_STATUS_RESERVED 這些標記在哪里標記     請各位指點一二~! 謝謝…

查看全部問答∨

關于win CE用CAB打包問題

我用CAB打包后,出的錯誤Log文件的內容是 “Error: Section [SourceDisksFiles] - file D:\\Program Files\\HelloCE\\HelloCE\\bin\\Debug\\HelloCE.exe cannot have a drive or pathname” 請問是什么原因?謝謝…

查看全部問答∨

如何構建一個IRP命令使U盤彈出?

如何構建一個IRP命令使U盤彈出? 我想在U盤已經插入電腦上的情況下,構建一個IRP命令將U盤彈出,但不知道怎么做? 向大家請教…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 福贡县| 阳泉市| 汝城县| 淳化县| 辉县市| 北川| 辽阳市| 固镇县| 柳江县| 青铜峡市| 微山县| 昌宁县| 长白| 龙川县| 礼泉县| 澄江县| 离岛区| 临汾市| 通河县| 固镇县| 襄汾县| 高清| 阿拉善盟| 凤庆县| 建水县| 博湖县| 三都| 沐川县| 遵义市| 大足县| 宽城| 涞水县| 海淀区| 恩平市| 仙桃市| 芦溪县| 莱西市| 睢宁县| 巴彦淖尔市| 绥中县| 游戏|