[問題] c語言 重複定義編譯錯誤
開發平台(Platform): (Ex: Win10, Linux, ...) Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
想請教一個專案遇到編譯錯誤的問題:
有三個文件
a.h
定義一個結構 typedef struct person
定義一個巨集 define macro1
b.h
定義一個結構 typedef struct person
定義一個巨集 define macro2
main.c
必須用到macro1和macro2
所以include a.h和b.h
這時候編譯會遇到struct redefinition error
但是a.h和b.h都是別人寫好的,內容不能改
想請問這樣要怎麼解決?謝謝
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
補充說明(Supplement):
----
Sent from BePTT on my Samsung SM-S9480
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.228.124.9 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1774632623.A.3AB.html
※ 編輯: komododo (36.228.124.9 臺灣), 03/28/2026 01:33:10
→
03/28 07:32,
2周前
, 1F
03/28 07:32, 1F
推
03/28 08:52,
2周前
, 2F
03/28 08:52, 2F
推
03/28 09:24,
2周前
, 3F
03/28 09:24, 3F
推
03/28 09:26,
2周前
, 4F
03/28 09:26, 4F
→
03/28 09:26,
2周前
, 5F
03/28 09:26, 5F
→
03/28 09:27,
2周前
, 6F
03/28 09:27, 6F
1. 不好拆成兩個.c,main.c include a.h和b.h,但typedef struct person是定義在a.h和
b.h裡又include好幾層的某一個c.h裡面
2. a.h 和b.h 裡面main.c要用到的macro和struct太多,copy不太合適
3. a.h和b.h我都沒權限改QQ
感謝回覆~
※ 編輯: komododo (36.228.124.9 臺灣), 03/28/2026 10:46:17
→
03/28 11:45,
2周前
, 7F
03/28 11:45, 7F
typedef struct person不會同時使用,只會用到b.h定義的,但是a.h和b.h都有其他要用到
的struct 和macro,必須同時引用
→
03/28 13:00,
2周前
, 8F
03/28 13:00, 8F
※ 編輯: komododo (36.228.124.9 臺灣), 03/28/2026 18:17:15
推
03/28 21:29,
2周前
, 9F
03/28 21:29, 9F
推
03/29 00:13,
2周前
, 10F
03/29 00:13, 10F
→
03/29 00:13,
2周前
, 11F
03/29 00:13, 11F
→
03/29 00:13,
2周前
, 12F
03/29 00:13, 12F
→
03/29 00:13,
2周前
, 13F
03/29 00:13, 13F
推
03/29 14:53,
2周前
, 14F
03/29 14:53, 14F
→
03/29 14:53,
2周前
, 15F
03/29 14:53, 15F
推
04/01 21:42,
2周前
, 16F
04/01 21:42, 16F
→
04/01 21:42,
2周前
, 17F
04/01 21:42, 17F
→
04/01 21:44,
2周前
, 18F
04/01 21:44, 18F
→
04/01 21:44,
2周前
, 19F
04/01 21:44, 19F
→
04/01 21:44,
2周前
, 20F
04/01 21:44, 20F
感謝回答!
※ 編輯: komododo (36.228.69.213 臺灣), 04/02/2026 00:05:15
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章