#ifndef #define #endif的作用
#ifndef x //先測試x是否被巨集定義過
#define x
程式段1blabla~ //如果x沒有被巨集定義過,定義x,並編譯程式段 1 #endif
程式段2blabla~ //如果x已經定義過了則編譯程式段2的語句,“忽視”程式段 1
#ifndef 和 #endif 要一起使用,如果丟失#endif,可能會報錯。
總結一下:在c語言中,對同一個變數或者函式進行多次宣告是不會報錯的。
所以如果h檔案裡只是進行了宣告工作,即使不使用# ifndef巨集定義,一個c檔案多次包含同一個h檔案也不會報錯。
使用#ifndef可以避免下面這種錯誤:如果在h檔案中定義了 全域性變數,一個c檔案包含同一個h檔案多次,如果不加#ifndef巨集定義,會出現變數重複定義的錯誤;如果加了#ifndef,則不會出現這種錯.
相關推薦
ifndef/define/endif作用和用法
問題:ifndef/define/endif”主要目的是防止標頭檔案的重複包含和編譯,偶只知道這個概念不懂的是怎麼個用法,和為什麼要用它~~高手請指點一下~~謝謝~~~!!! -------------------------------------------------------------------
C++中#ifndef, #define, #endif的作用和使用的注意事項
在C++語言程式設計中,我們經常會接觸到標頭檔案,比如說宣告類,或者宣告名稱空間等,而每次在編寫xxx.h的標頭檔案時,程式設計書上都會讓我們在程式碼的前後加上如下的三句程式碼: #ifndef XXX_H_ #define XXX_H_ …… #endif 其中……代表
#ifndef #define #endif的作用
#ifndef x //先測試x是否被巨集定義過 #define x 程式段1blabla~ //如果x沒有被巨集定義過,定義x,並編譯程式段 1 #endif 程式段2blabla~ //如果x已經定義過了則編譯程式段2的語句,“忽視”程式段 1#ifndef 和 #
面試題5:標頭檔案中的ifndef/define/endif有什麼作用?
在一個大的軟體工程裡面,可能會有多個檔案同時包含一個頭檔案,當這些檔案編譯連結成一個可執行檔案時,就會出現大量重定義的錯誤。在標頭檔案中實用#ifndef #define #endif能避免標頭檔案
淺談#ifndef~#define~#endif~的作用
/* #ifndef _STDAFX_H #define _STDAFX_H #include<iostream.h> //cin cout #include<malloc.h> //malloc free
巨集定義(#ifndef+#define+#endif)的作用
本文介紹#ifndef、#define、#endif三者一起使用的巨集定義的作用。 在標頭檔案中,我們經常會在標頭檔案中見到#i
c/c++標頭檔案中#ifndef/#define/#endif的用法
想必很多人都看過“標頭檔案中用到的 #ifndef/#define/#endif 來防止該標頭檔案被重複引用”。但是是否能理解“被重複引用”是什麼意思?標頭檔案被重複引用了,會產生什麼後果?是不是所有的標頭檔案中都要加入#ifndef/#define/#endif 這些程式碼
#ifndef.#define, #endif 的用法
檔案中的#ifndef.#define, #endif 很關鍵,是為了避免多重包含,比如如果兩個C檔案同時包含同一標頭檔案,那麼就會出現問題,所以使用這種方法可以有效避免這種情況。 一般用法: 以add.h為例 1 #ifndef _ADD_H_ 2 #defin
C/C++中常出現的#ifndef,#define,#endif解析
--------------------------------------------------------------------------------------------------#ifndef GRAPHICS_H // 防止graphics.h被重複引用 #define GRAPHICS_
#ifndef/#define/#endif以及#if defined/#else/#endif使用詳解
1、#ifndef_WINDOWS_PLAYM4_H_ #define _WINDOWS_PLAYM4_H_ #endif 問題:想必很多人都看過“標頭檔案中的 #ifndef/#
#ifndef#define#endif的用法【轉載…
#define WINDOWS 這樣則編譯下面的命令列: #define MYTYPE long 如果在這組條件編譯命令之前曾出現以下命令列: #define WINDOWS 0 則預編譯後程序中的MYTYPE都用floa
#ifndef/#define/#endif使用詳解
--------------------------------------------------------------------------------------------------#ifndef GRAPHICS_H // 防止graphics.h被重複引用 #define GRAPHICS_
c++ typedef和#define的作用範圍
空間 作用 fine mes namespace 函數 () log ash typedef: 如果放在所有函數之外,它的作用域就是從它定義開始直到文件尾; 如果放在某個函數內,定義域就是從定義開始直到該函數結尾; #define: 不管是在某個函數內,還是在所有函數之外,
c++ 預處理指令#define, #endif...
第一個 ++ 空白字符 當前 def windows 源代碼 定義宏 else 常見的預處理指令有: # 空指令,無任何效果 # include 包含一個源代碼文件 #define 定義宏 #undef 取消已定義的宏 #if 如果給定條件為真,則編譯下面代碼 #ifdef
標頭檔案中的ifndef/define/Enif 幹什麼用?
想必很多人都看過“標頭檔案中的 #ifndef/#define/#endif 防止該標頭檔案被重複引用”。但是是否能理解“被重複引用”是什麼意思?是不能在不同的兩個檔案中使用include來包含這個標頭檔案嗎?如果標頭檔案被重複引用了
C語言查缺補漏(十)#ifndef與#endif
忽略點十:#ifndef與#endif 印象中兩者在C/C++專案建立標頭檔案時自動新增,一直沒有深究它的意義,決定跟大家講一下它的用法,順便也是對自己的查缺補漏 要將他們,首先要說一下專案,對於C語言專案來說,多檔案中的每個檔案的特殊全域性變數,型別定
[C/C++]#ifndef,#define用法
1.檔案中的#ifndef 頭件的中的#ifndef,這是一個很關鍵的東西。比如你有兩個C檔案,這兩個C檔案都include了同一個標頭檔案。而編譯時,這兩個C檔案要一同編譯成一個可執行檔案,於是問題來了,大量的宣告衝突。 還是把標頭檔案的內容都放在#ifndef和#en
#if_MSC_VER>1000 #pragma once #endif作用解釋
一、 #if _MSC_VER>1000 //如果編譯器的版本大於1000則該語句被編譯,大概小於1000的版本不支援#pragma once這個語句 #pragma once #endif 解釋: 這是微軟的預編譯控制。在_MSC_VER較小時,它對一些東西的支援與新版不同。 _MS
C語言條件編譯(#if,#ifdef,#ifndef,#endif,#else,#elif)
1、條件編譯介紹 條件編譯(conditional compiling)命令指定前處理器依據特定的條件來判斷保留或刪除某段原始碼。例如,可以使用條件編譯讓原始碼適用於不同的目標系統,而不需要管理該原始碼的各種不同版本。 條件編譯區域以 #if、#ifdef 或 #ifndef 等命令作為開頭,以
#pragma once 與 #ifdef #define #endif 區別
pragma once 這是一個比較常用的指令,只要在標頭檔案的最開始加入這條指令就能夠保證標頭檔案被編譯一次 #pragma once用來防止某個標頭檔案被多次include,#ifndef,#define,#endif用來防止某個巨集被多次定義