c語言寫標頭檔案定義巨集的問題,C語言寫標頭檔案定義巨集的問題

2021-08-08 04:51:57 字數 1343 閱讀 8505

1樓:兔子和小強

#ifndef a_h

#define a_h

....

#endif

就是如果沒有定義a_h那麼就定義a_h,並執行....。

這樣就避免了重複include的問題。

標頭檔案叫file

那麼一般#ifndef _file_h_這是c的風格,也可以取一個唯一的其他識別符號

2樓:匿名使用者

預編譯**內的防止重複編譯就是這樣做的,比如

a.cpp中包含a.h,b.h同時a.h內又有包含b.h,類似這種情況的時候,如果不加入這樣的預編譯檢驗,就會出錯,因為a.h被編譯了兩次

一般這個任意的名字會使用很長的亂碼,防止重複,代表唯一的標頭檔案編譯標示

3樓:匿名使用者

這個識別符號和檔名沒有關係..

假設你的**, 一共2次include同一個檔案.

#include "a.h" // 第一次, 因為a_h沒與被定義, 所以包含"內容", 並且定義a_h

#include "a.h" // 第二次, a_h被上面定義過了, 所以內容被跳過.

為了防止a_h在意外的地方被事先定義過, (比如有一個整數也正好定義成a_h這個名字, 或者另一個檔案也定義這個識別符號)

所以a_h這樣的識別符號, 通常取一些一般不會被重複的名字, 比如說很長的隨機字母, 或者乾脆就是檔名(因為檔名一般來說不會重複)

4樓:匿名使用者

原始碼程式不懂,改個簡單的倒還可以

5樓:匿名使用者

#include

不是有這個標誌嗎

我們再微控制器c語言程式設計中,標頭檔案一般都是用來定義一些巨集和函式宣告的對嗎

6樓:渿河

標頭檔案的功能的確是

copy用來定義一些巨集和函式宣告的, 但是也是i可以定義變數的, 如果你在標頭檔案裡定義變數編譯出錯的話 可能是因為你的微控制器的編譯器不支援在標頭檔案中定義變數, 這個跟編譯器有關。 有的編譯器是支援在標頭檔案中定義變數的。

一般不再標頭檔案中定義變數是因為怕重複包含所產生的重複定義。

並且標頭檔案一般要具有通用性, 你在裡面定義了變數的話別人再使用的時候就得去注意避免重複定義。

7樓:海

對的,標頭檔案一般是用來做預定義和函式申明的,當然你也可以把函式也寫在標頭檔案裡,這樣就不需要.c了,在程式main.c中直接包含該標頭檔案就可以呼叫裡面的函式了

8樓:匿名使用者

標頭檔案主要就這作用吧

聽說h字尾的檔案是c語言的標頭檔案,不是c 的。c 的

lz的說法有誤。include只是文字包含,具體一點地說,在一般的實現中,只要是可以正常訪問的文字檔案,無論是什麼副檔名 甚至不含副檔名 前處理器僅僅把文字的內容複製到 include所在行並刪除此行,也就是用文字檔案的內容替換 include所在的這一行而已,而不會在 include進行時因為檔名...

C中有巨集定義嗎,在C 語言中怎麼定義類似於C言的巨集定義

public const int m 100 或internal const int m 100 沒有 有 const 變數 即常量 沒有,c 有const 常量或static 靜態變數 c中有巨集定義 c 中用 const 定義常量 請問怎樣在c 中實現類似c 中的巨集定義。不懂勿答!ms的編譯器...

C語言函式後跟巨集定義是什麼意思,C語言函式後跟乙個巨集定義是什麼意思?

預處理運算子 為巨集擴充套件提供了一種連線實際變元的手段。如果替換文字中的引數用 相 連,那麼引數就被實際變元替換,與前後的空白符被刪除,並對替換後的結果重新掃瞄。例 如,下面定義的巨集p a s t e用於連線兩個變元 define paste front,back front back 從而巨集...