c語言結構體如何在多個原始檔裡面呼叫

時間 2021-12-22 20:58:53

1樓:

foo.**件裡面寫

#ifndef _foo_h_

#define _foo_h_

struct foo

;#endif

然後每一個需要這個結構體的檔案都加標頭檔案 foo.h

2樓:

標頭檔案裡用extern struct ***; 其中一個.c檔案裡 struct ***;

其他.c要用的話吧這個標頭檔案包含進去。

3樓:匿名使用者

引用結構體有引用型別,和引用全域性變數兩種方式。

1、引用型別。

需要將結構體定義與標頭檔案中(.**件),然後在需要引用型別的原始檔(.c)中,均引用該標頭檔案,即可使用該型別。

2、引用全域性變數。

要引用全域性變數,需要先引用型別,之後在一個原始檔中定義全域性變數,在其它原始檔中宣告該全域性變數,即可使用。

比如結構體為struct test, 定義全域性變數為struct test glabol_test;

在其它檔案中,只需要

extern struct test globol_test;

即可在對應檔案宣告所在行之下進行呼叫。

c語言一個結構體如何在多個原始檔裡面呼叫?

4樓:匿名使用者

引用結構體有引用型別,和引用全域性變數兩種方式。

1、引用型別。

需要將結構體定義與標頭檔案中(.**件),然後在需要引用型別的原始檔(.c)中,均引用該標頭檔案,即可使用該型別。

2、引用全域性變數。

要引用全域性變數,需要先引用型別,之後在一個原始檔中定義全域性變數,在其它原始檔中宣告該全域性變數,即可使用。

比如結構體為struct test, 定義全域性變數為struct test glabol_test;

在其它檔案中,只需要

extern struct test globol_test;

即可在對應檔案宣告所在行之下進行呼叫。

c語言中如何在多個檔案中引用同一個結構體

5樓:滄海雄風

把結構體定義在一個公共標頭檔案裡 然後都包含這個標頭檔案

6樓:匿名使用者

引用結構

來體有引用型別,和引用全域性自變數bai兩種方式。

1 引用型別。

需要du將結構體定義

zhi與標頭檔案中(.**件),然後在dao需要引用型別的原始檔(.c)中,均引用該標頭檔案,即可使用該型別。

2 引用全域性變數。

要引用全域性變數,需要先引用型別,之後在一個原始檔中定義全域性變數,在其它原始檔中宣告該全域性變數,即可使用。

比如結構體為struct test, 定義全域性變數為struct test glabol_test;

在其它檔案中,只需要

extern struct test globol_test;

即可在對應檔案宣告所在行之下進行呼叫。

ps:該宣告部分,也可以寫在定義結構體的標頭檔案中。

7樓:匿名使用者

在包含結構體的檔案開始加一行

#pragma once

這樣只編譯一次

8樓:匿名使用者

//file2.c

#include "file1.h"

#include "file3.c"

st gg;

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語言中,將多個結構體資料寫到一個檔案中,應該如何讀取?

14樓:匿名使用者

c語言把一個結構體陣列寫入檔案分三步:

1、以二進位制寫方式(wb)開啟檔案

2、呼叫寫入函式fwrite()將結構體資料寫入檔案

3、關閉檔案指標

相應的,讀檔案也要與之匹配:

1、以二進位制讀方式(rb)開啟檔案

2、呼叫讀檔案函式fread()讀取檔案中的資料到結構體變數

3、關閉檔案指標

參考**如下:

#include

struct stu ;

int read_file();

int write_file();

int main()

int write_file()

;fp=fopen( "stu.dat", "wb" ); //b表示以二進位制方式開啟檔案

if( fp == null ) //開啟檔案失敗,返回錯誤資訊

向檔案中寫入資料

fclose(fp);//關閉檔案

return 0;

}int read_file()

讀檔案中資料到結構體

age, student.score ); //顯示結構體中的資料

fclose(fp);//關閉檔案

return 0;}

15樓:匿名使用者

不太方便,如果用vb.net的xml不容易出錯,

你存結構體到文字,需要精確地定位,非常麻煩啊。

16樓:

1。如果你知道存入檔案的第一個結構是什麼型別的,此種就非常方便了,自己根據 從檔案讀出的第一個結構裡面的下個結構指標 來讀檔案中下個結構。

2。如果你不知道存入檔案的第一個結構式啥型別,但又想分三個結構來存取,那你只能在每個結構裡面加上一個變數來區分是什麼結構,這樣在讀檔案之前先讀出這個變數,根據其值來判斷結構型別

在c語言中,建立一個工程,當多個原始檔要使用結構體變數時,我們應該在哪宣告和定義,應該怎樣宣告?

17樓:

a.c int var;//定義的地方

b.c extern int var;//宣告表明你在其它地方定義過,然後就可以用了

18樓:匿名使用者

在標頭檔案裡面申明一些函式和結構體變數。

在其他 每個原始檔裡面#include 《標頭檔案》.

如果是在一個原始檔中要使用其他原始檔的變數,要用extern 申明。

19樓:匿名使用者

在a.h中宣告結構體。

typedef struct

warn_comm;

在要呼叫的程式.c中

#include "a.h"

warn_comm *warn;

warn = (warn_comm *)malloc(sizeof(warn_comm));

warn->a = 1;

....

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

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

如何在vs2019上執行c 原始檔

首先你要建一個工程,然後將cpp檔案新增進去!然後f7編譯,f5除錯!如何在vs2010中執行編譯c和c nvn小抖 vs2010 需要先建立工程,然後在工程中新增cpp檔案,再編寫 然後編譯執行才可以,給您個圖吧 1。首先新建專案 2。從左邊找到visual c 在中間找到你要建立的專案,一般回事...

c語言結構體檔案寫入亂碼,急!C語言程式設計 寫入檔案的資料變成亂碼是怎麼回事?

fwrite是將記憶體中的資料不經轉換直接寫入檔案,所以檔案中儲存的是二進位制形式,當然看到亂碼了。你可以試試 fprintf fp1,s s s s s s copy1.title,copy1.copies,copy1.rental duration,copy1.director,copy1.ac...