1樓:匿名使用者
c語言程式設計中,為防止標頭檔案在同一編譯單元被重複引用,常引入#ifndef巨集來進行保護,如:標頭檔案my_head.h
#ifndef _my_head_h_ //如果沒有定義巨集_my_head_h_
#define _my_head_h_ //則,定義該巨集名
//以下是被保護的**區
//進行相應的全域性變數和結構體型別定義
typedef struct stu stu ;
#endif //巨集判斷結束
這樣,當整個**中,多次引用這個my_head.h時,只有一次是生效的,系統編譯時,如果檢查巨集_my_head_h_ 已經定義,就不會再進入被保護的**區了。
ps: 巨集名,一般是與頭檔名相同,只是把字母全大寫,前後加上下劃線(_)
2樓:小西
標頭檔案由三部分內容組成:
(1)標頭檔案開頭處的版權和版本宣告。
(2)預處理塊。
(3)函式和類結構宣告等。
它的作用:
(1)通過標頭檔案來呼叫庫功能。
(2)標頭檔案能加強型別安全檢查。
用 #include 格式來引用標準庫的標頭檔案(編譯器將從標準庫目錄開始搜尋),到include子目錄下搜尋給出的檔案,並把它嵌入到當前檔案中 。
用 #include 「filename.h」 格式來引用非標準庫的標頭檔案(編譯器將從使用者的工作目錄開始搜尋),在當前目錄中進行搜尋,如果找不到,再按標準方式進行搜尋 ,這種方式適用於使用者自己建立的標頭檔案。
需要對外公開的常量放在標頭檔案中,不需要對外公開的常量放在定義檔案的頭部。為便於管理,可以把不同模組的常量集中存放在乙個公共的標頭檔案中
為何c語言標頭檔案中定義的結構體顯示未能定義?
3樓:匿名使用者
你雖然定義了,但是結構體在下面,所以你只能把報錯的那句話移到結構體定義的下面才可以
c語言是在.h中定義結構體還是在.c中定義?
4樓:
//point.h
#ifndef point_h
#define point_h
struct point;
#endif
//1.c
#include "point.h"
struct point p1,p2,p3;
//1.h(#ifndef之類的略)
#include "point.h"
extern struct point p1,p2,p3;
2.c#include "point.h"
#include "1.h"
//後面就可以用p1,p2,p3了。以後每個.c都像這樣用就可以了,變數在哪個.c裡定義的,就在與之對應的.h裡extern,以後要用到的每個標頭檔案都include它。
5樓:
如果只是用到宣告,放在.h種就行了;
如果宣告的同時並定義乙個全域性變數的話,在.h裡用extern宣告,並在對應的.c裡定義。
其它的.c檔案直接include就行了
6樓:范德薩了就
結構體是一種型別,定義一種型別最好是在.h定義,這樣其他地方想用這個結構體,只需包含此.**件即可,但是定義結構體變數的話,最好載.
c檔案定義(為了防止重複定義,所以不建議在c檔案中定義變數),然後..h裡面extern宣告,其他.c檔案想用只需包含那個.
**件即可
7樓:亂舞大螃蟹
最好在標頭檔案中定義,原始檔需要用這個結構體就直接引用這個標頭檔案就可以了
8樓:匿名使用者
將這個三個結構體 都放到.h中,不用extern吧,只有.c檔案中新增上這個.**件就好了。
c語言中定義乙個結構體如何在不同的.c檔案中使用。
9樓:家谷秋魯曠
struct
node
這樣就定義了乙個結構體型別node,它有兩個int型別的成員,分別是a和b,定義變數是用
struct
node
st_a;
這樣的形式.(例如,上式就定義了乙個名為st_a的結構體變數)
10樓:橙心橙願
比如三個.c檔案乙個.**件
c 2.c 3.c 4.h這三個標頭檔案都引用4.h include<4.h>4.h中定義乙個結構體型別struct test{};
1.c中定義乙個該結構體型別的全域性變數struct test mode;
4.h中extern struct test mode;
其他.c檔案就可以直接使用這個結構體變數了,並且是共用的
11樓:匿名使用者
#include
然後就用啊
正式一點的,可以宣告
extren struct ***;
就可以了
注意標頭檔案需要用#ifndef #define #endif或者#pragama once,確保標頭檔案只引入一次,以免引起重複定義的錯誤。
12樓:水上漂湯
使用巨集可以避免重複定義,參考:http://zhidao.
13樓:匿名使用者
包含這個.h標頭檔案即可。
c語言結構體定義,C語言結構體定義
c語言結構體定義 struct為結構體關鍵字,tag為結構體的標誌,member list為結構體成員列表,其必須列出其所有成員 variable list為此結構體宣告的變數。結構體是c語言中聚合資料型別 aggregatedatatype 的一類。結構體可以被宣告為變數 指標或陣列等,用以實現較...
C語言結構體定義,C語言結構體定義 25
chanrich輕輕 所謂結構體陣列,是指陣列中的每個元素都是一個結構體。在實際應用中,c語言結構體陣列常被用來表示一個擁有相同資料結構的群體,比如一個班的學生 一個車間的職工等。結構體可以儲存不同的資料型別,將他們互相聯絡起來。結構體陣列可以連續儲存多個結構體,和陣列作用相似。比如想定義同一個最小...
c語言定義結構體變數,C語言 定義結構體變數
樂跑小子 首先,定義一個結構的一般形式為 struct結構名 成員表由若干個成員組成,每個成員都是該結構的一個組成部分。對每個成員也必須作型別說明,其形式為 型別說明符 成員名 成員名的命名應符合識別符號的書寫規定。例如 struct stu 在這個結構定義中,結構名為stu,該結構由4個成員組成。...