c語言中,如何將結構體裡的資料定義為全域性變數,因為我在其他檔案中要用到這些變數

時間 2021-07-08 21:29:46

1樓:小鹿小梨

使用前宣告這些變數即可(使用extern關鍵字表示是外部定義過的變數)。但要注意,全域性變數只能定義一次,否則就會犯重複定義的錯誤。

/* 示例 */

file1.c

int i, j; //定義全域性變數

char c;

void fun( )

file2.c

extern int i,j; //外部變數宣告extern char c;

void func1( )

2樓:

直接把結構體定義成全域性變數就行,哪個檔案需要就extern

3樓:無名逃兵

把結構的定義寫到標頭檔案裡邊,然後再其他檔案裡#include就行了

4樓:你丶好

只要將結構體宣告放在全域性變數處

其他用法與全域性變數相同

5樓:小小鳥

把結構體定義在.h檔案中也就是標頭檔案中

6樓:匿名使用者

//main.c

#include

#include

#include "extern.h"

int print(char *str,test t);

test t=;

int main()

//extern.h

#ifndef extern_h_included#define extern_h_includedtypedef structtest;

extern test t;

extern int print(char *str,test t);

#endif // extern_h_included//extern.c

#include "extern.h"

#include

//struct stu std1;

//extern float inta;

int print(char *str,test t)

7樓:匿名使用者

你定義一個全域性的結構體變數噻

8樓:己飢己溺

fortware 

碼齡8年

關注該死的結構體,折騰了哥快兩小時!!!在此總結一下。

假設a.h檔案定義結構體:

struct test

;那麼要在b.c檔案中呼叫該怎麼寫呢?

需要兩步:

1、標頭檔案包含

#include "a.h"

2、先定義一個結構體變數(注意是定義,不是宣告)struct test c;

2、在b.c檔案中宣告要呼叫的結構體變數(注意是宣告,宣告為全域性變數)

extern struct test c;

3、然後就可以給結構體成員賦值

/*成員賦值*/

c.a = 1;

c.b = 2;

當然,如果變數定義為結構體指標變數,則變成如下:

/*定義*/

struct test *c;

/*宣告*/

extern struct test *c;

/*成員賦值*/

c->a = 1;

c->b = 2;

另外還有另一個變種,使用typedef 定義結構體typedef struct test

result;

/*定義*/

result c;

/*宣告*/

extern result c;

/*成員賦值*/

c.a = 1;

c.b = 2;

result是一個結構體型別,不是結構體變數,定義變數like this :result y0,y1;y0、y1才屬於結構體變數。實際上 result = struct test全文

怎樣使c語言全域性變數在多個檔案中使用?

9樓:謂之

extern 關鍵字

extern int i;這樣就可以在其他檔案中使用在標頭檔案中宣告版

a.hextern int i;

在其他某

個c檔案中定義權

int i =0;

其他要使用i變數的c原始檔只需要include"a.h"就可以

c語言中如何將結果傳遞給另c語言檔案

拒絕996的瀟灑程式設計師 通過函式的傳址引數 引用或指標 或返回值傳遞。多個人合作時,必須提前約定好介面函式的宣告格式。這裡的所謂介面函式就是所有可能需要用來互相傳遞結果的函式 這個要用 版本管理工具,有商用的也有開源的。開源的比如svn,cvs,商用的如clearcase等。工作的模式基本上是 ...

C語言中定義結構體如何在不同的 C檔案中使用

家谷秋魯曠 struct node 這樣就定義了一個結構體型別node,它有兩個int型別的成員,分別是a和b,定義變數是用 struct node st a 這樣的形式.例如,上式就定義了一個名為st a的結構體變數 橙心橙願 比如三個.c檔案一個.h檔案 c 2.c 3.c 4.h這三個標頭檔案...

c語言如何將賦值過的陣列置空,C語言 如何將一個賦值過的陣列置空

幻翼高達 需要準備的材料分別有 電腦 c語言編譯器。1 首先,開啟c語言編譯器,新建一個初始.cpp檔案,例如 test.cpp。2 在test.cpp檔案中,輸入c語言 char a 10 hello a 0 0 printf s a 3 編譯器執行test.cpp檔案,此時字串被成功置空被列印。...