應該分為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...