Re: [問題] C語言 - Struct 在大型程式專案中的使用?
看板C_and_CPP (C/C++)作者tsaiminghan (nahgnimiast)時間16年前 (2009/04/04 10:22)推噓1(1推 0噓 10→)留言11則, 2人參與討論串2/3 (看更多)
※ 引괊z《RaiGend0519 (鮮度減半,老了0.5歲囧)》之銘言:
: 就像我現在設定一個在main.o:
: struct pc {
: int a;
: int b;
: };
: struct pc pcgame={1,2};
: struct pc2 {
: int c;
: int d;
: }pcgame2;
: 然後我在其他.o檔裡面有使用到:
: if(pcgame.a > pcgame.b)
: XXXXXXXX;
: else
: XXXXXXXX;
: 或著
: pcgame2.c=((rand()%3)+1);
: 這樣的時候
: 該怎麼作才能讓他們之間可以互相使用?
: 因為我怎麼試他都說沒有定義
: 有人說用#define把struct跟創造的結構變數寫進去...
: 可是這樣不是就不能更動了嗎= ="...
: 我試著把struct做成.c檔
: 然後include近來
: 並在main.o設定全域變數
: 但是Dev c++說這樣是"muiltily define pcgame"...
之前我嘗試把程式碼分開寫的時候也碰過。
我試了很久之後用了下面的方法,但是我不知道一般怎麼處理
你可以寫一個global.h把所有共用的struct定義都寫在這裡,
有需要用到的再include此定義檔,然後真正宣告的實體變數,
也多加一筆資料在這邊,只是要加上extern類似下面
=====================global.h================
#ifudef _GLOBAL_H_
#define _GLOBAL_H_
struct pc{
int a;
int b;
};
struct pc2{
int c;
int d;
};
extern struct pc pcgame;
#endif
===================main.c=====================
#include "global.h"
void main()
{
struct pc pcgame = {1,2};
}
==================xxxx.c======================
#include "global.h"
void aaa(void)
{
pcgame.a = 1;
pcgame.b = 2;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.168.67.96
→
04/04 10:28, , 1F
04/04 10:28, 1F
→
04/04 10:39, , 2F
04/04 10:39, 2F
→
04/04 10:39, , 3F
04/04 10:39, 3F
→
04/04 10:43, , 4F
04/04 10:43, 4F
→
04/04 10:43, , 5F
04/04 10:43, 5F
※ 編輯: tsaiminghan 來自: 218.168.67.96 (04/04 11:38)
→
04/04 11:38, , 6F
04/04 11:38, 6F
推
04/04 14:27, , 7F
04/04 14:27, 7F
→
04/04 14:28, , 8F
04/04 14:28, 8F
→
04/04 14:29, , 9F
04/04 14:29, 9F
→
04/04 14:30, , 10F
04/04 14:30, 10F
→
04/04 14:30, , 11F
04/04 14:30, 11F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章