多個C檔案都會用到的結構體定義

2021-06-23 04:52:13 字數 542 閱讀 7172

應該分為3個檔案,乙個標頭檔案儲存結構體定義供其它.c檔案使用,乙個.c檔案中定義全域性變數,另乙個.c檔案中宣告使用全域性變數,並通過函式修改該全域性變數

a.h //存放結構體定義

#ifndef _a_h

#define _a_h 1

struct motor

;#endif

def.c //檔案用來定義全域性變數(注意不是宣告,定義是要分配記憶體的)

#include "a.h"

struct motor mymotor;

//加入其它處理**

call.c //用來實現操作全域性變數的函式

#include "a.h"

extern struct motor mymotor; //這是引用外部變數的前置宣告,否則直接使用單獨編譯該檔案時會提示變數未定義

void refresh_status(struct motor *ptr);//狀態重新整理函式

呼叫方式

refresh_status(&mymotor);

原文:

結構體定義 h與 c檔案的問題

首先乙個問題 就是結構體宣告與定義的問題,不過,感覺現在的我有點弄混了。那麼下面我直接來說明 最開始的程式設計習慣,一直是用將結構體的定義 即struct xx 這個放在.件裡,c檔案只放置相關的函式實現。不過這幾天看了一本相關的資料結構的書,發現上述定義是放置在.c檔案中的,而.件只放struct...

C 結構體的定義取用

一 什麼是結構體 把一些基本資料組合在一起形成的乙個新的復合資料型別 類似類 其定義形式為 struct name 二 結構體的三種定義方式 第一種定義了乙個新的資料型別,並沒有定義變數 推薦使用第一種 struct student 第二種定義了資料型別和變數 struct student st 第...

C 結構體定義的詳解

c 結構體定義也可以象類一樣可以單獨定義.class a struct a c 結構體定義也可以在名字前面加入控制訪問符.public struct student internal struct student 如果結構體student沒有publice或者internal的宣告 類program...