C的標頭檔案保護問題,C 標頭檔案保護符

時間 2022-07-28 22:55:13

1樓:櫻信全無

所有的標頭檔案保護一般都是如此寫的

#ifndef x

#define x

......

#endif

這個x要寫成什麼沒有任何規定的,只要在工程中不要跟其他的巨集定義衝突重複就可以了。

在vc下等同於 #pragma once

2樓:兔子和小強

這個都可以,風格而已。

只要取個唯一的識別符號即可。

不過要注意

#ifndef *** //上下兩個識別符號要相同#define ***

#endif

這東西不叫什麼標頭檔案保護,是為了防止重複include

c的標頭檔案保護問題

3樓:納天藍逢杉

這個都可以,風格而已。

只要取個唯一的識別符號即可。

不過要注意

#ifndef

***//上下兩個識別符號要相同

#define

***#endif

這東西不叫什麼標頭檔案保護,是為了防止重複include

4樓:盈安青方瀾

所有的標頭檔案保護一般都是如此寫的

#ifndef

x#define

x......

#endif

這個x要寫成什麼沒有任何規定的,只要在工程中不要跟其他的巨集定義衝突重複就可以了。

在vc下等同於

#pragma

once

c++標頭檔案保護符

5樓:風林火陰山雷

您好!很高興為您解答。

c++中,一般我們會為了防止標頭檔案被包含多次,都會在每個標頭檔案中寫與如下類似的**:

#ifndef a_h

#define a_h

......//標頭檔案內容

#endif

標頭檔案第一次被包含時,因為沒有巨集定義過「a_h」,因此經過語句

「#ifndef a_h

#define a_h

」並得到執行後,「a_h」就被定義了,並且標頭檔案的內容會進入編譯,直到遇見「#endif」。

而一旦該標頭檔案即將被錯誤地包含第二次時,與語句「#ifndef a_h」不符,因為第一次你已經定義過「a_h」了,所以「#ifndef a_h」之後的語句不會進入編譯了,直到遇見「#endif」。

若標頭檔案被包含一次以上,編譯時都會報錯。c++標頭檔案保護符的目的就是避免這類錯誤。

望採納~若您還有不明白之處,歡迎繼續追問~

6樓:匿名使用者

#ifndef abc_h

#define abc_h

標頭檔案#endif

7樓:青雲

巨集唄,是給編譯器在編譯時看的。執行時不起作用,在編譯器被編譯器根據巨集來保護。不知你懂我的意思了沒。

c語言標頭檔案問題

8樓:唉唉唉

假如我沒猜錯的話,這個應該是系統本來就有的乙個庫

因為你看啊,他的語句system就是呼叫系統本來的質量

不信你去系統的cmd玩玩,system的指令都是可以執行到cmd裡的

9樓:樂酷科技

把這一行注釋掉一樣可以執行吧

10樓:又似這樣

沒有用這個有檔案裡面的東西還是可以執行的吧,應該是這樣

c 怎麼使用標頭檔案保護符(header guard)

11樓:匿名使用者

#ifndef aaa

#define aaa

。。。。。

#endif

或者#ifdef aaa

。。。。。

#endif

12樓:匿名使用者

#ifndef abc_h_

#define abc_h_

#endif

c語言裡防止標頭檔案被重複定義的問題?

13樓:匿名使用者

graphics.h顯然是不行的,.在c語言中有專門的含義

另外巨集最好是遵循大寫的風格,約定俗成,不是說小寫不行,而是會帶來理解上的麻煩。

14樓:匿名使用者

恩,樓上對的,巨集定義約定用大寫,其實用graphics_h也不會報錯

graphics.h不是合法的巨集名,因為.,巨集名只能由字母數字下劃線組成,且以字母或下劃線開頭

15樓:匿名使用者

可以寫成graphics_h,但是通常巨集定義都寫成大寫的。 不能寫成graphics.h,巨集定義不能使用.來連線,語法錯誤

c++ 怎麼使用標頭檔案保護符(header guard)

16樓:匿名使用者

一般我們會為了防止標頭檔案被包含多次,都會在每個標頭檔案中寫與如下類似的**:

// a.h

#ifndef a_h

#define a_h

//內容

#endif

這樣,你如果在兩個地方都有這個語句:

#include "a.h"

那麼這個標頭檔案將被保證只被加入一次,你知道為什麼會只加入一次嗎?因為a_h這個巨集定義哈。

然後這樣其實也可以的:

如: //a.h

什麼也不加..

呼叫時:

第一次呼叫

#ifndef a_h

#define a_h

#include "a.h"

#endif

第二次呼叫:

#ifndef a_h

#define a_h

#include "a.h"

#endif

前者叫內部保護,後者叫外部保護。

由於外部保護經常可能會忘記寫,容易被誤用,所以我們推薦使用內部保護。

微軟提供了乙個指令使你可以更方便的保護:

#pragma once//優點:方便,缺點:無可移植性

17樓:匿名使用者

#ifndef 標識

#define 標識

標頭檔案語句

#endif

這裡的標識需要是可以唯一標識乙個標頭檔案的名稱,可以用你標頭檔案的名字來表示,例如stdio.h:

_stdio_h

c++標頭檔案保護符怎樣實現其作用的?

18樓:風林火陰山雷

您好!很高興為您解答。

c++中,一般我們會為了防止標頭檔案被包含多次,都會在每個標頭檔案中寫與如下類似的**:

#ifndef a_h

#define a_h

......//標頭檔案內容

#endif

標頭檔案第一次被包含時,因為沒有巨集定義過「a_h」,因此經過語句

「#ifndef a_h

#define a_h

」並得到執行後,「a_h」就被定義了,並且標頭檔案的內容會進入編譯,直到遇見「#endif」。

而一旦該標頭檔案即將被錯誤地包含第二次時,與語句「#ifndef a_h」不符,因為第一次你已經定義過「a_h」了,所以「#ifndef a_h」之後的語句不會進入編譯了,直到遇見「#endif」。

若標頭檔案被包含一次以上,編譯時都會報錯。c++標頭檔案保護符的目的就是避免這類錯誤。

望採納~若您還有不明白之處,歡迎繼續追問~

c怎麼自己建立標頭檔案,C 怎麼自己建立標頭檔案

gz陶克說 建頭宣告c檔案中的函式,巨集定義以及對應的標頭檔案。每個c c程式通常分為兩個檔案。乙個檔案用於儲存程式的宣告 declaration 稱為標頭檔案。另乙個檔案用於儲存程式的實現 implementation 稱為定義 definition 檔案。c c程式的標頭檔案以 h 為字尾,c程...

c語言標頭檔案怎麼解釋,c語言中要引用標頭檔案時「」與 的區別!

傳統 c include 設定插入點 include 字元處理 include 定義錯誤碼 include 浮點數處理 include 檔案輸入 輸出 include 引數化輸入 輸出 include 資料流輸入 輸出 include 定義各種資料型別最值常量 include 定義本地化函式 inc...

c語言標頭檔案包含 全域性變數使用問題

c語言在標頭檔案中包含全域性變數有三種形式 1 在標頭檔案中宣告乙個全域性變數,在乙個c檔案中定義全域性變數,然後在所有的引用了這個標頭檔案的c檔案裡都可以使用該全域性變數值。如在main.c定義 int a 3 然後定義乙個main.h,那麼所有引用main.h的c檔案中,均可以訪問a並更改其值。...