我有兩個C模塊,每個使用另一個的功能。在我的makefile我已經表達了這樣的這樣的:在make/C代碼中解析循環引用的正確方法?
moduleA.h: common.h moduleB.h
moduleB.h: common.h moduleA.h
出於顯而易見的原因,雖然它繼續編譯罰款這會產生一個循環引用警告。解決這個問題的正確方法是什麼?我應該重構模塊來創建第三個模塊 - 將兩者聯繫在一起嗎?
模塊A是一個日誌模塊,模塊B是一個cronjob實現。日誌記錄使用cronjob來安排日誌輪轉,而cronjob使用日誌記錄來告訴每個人它所要做的事情。
模塊C會比較小;只需創建一個cronjob來調用日誌輪轉函數,但是日誌記錄不需要知道cronjob。 Cronjob仍然會依賴於日誌記錄。
或者我應該忽略這個警告?
包括後衛:http://en.wikipedia.org/wiki/Include_guard – tbert 2012-08-03 16:11:30
我總是創建一個新的頭文件的時候有兩個頭文件分享的內容(結構聲明,例如),所以您的建議創建** moduleC.h **很好。 – Claudix 2012-08-03 16:24:27
假設'moduleA.h'已經改變。應該如何重建'moduleB.h'? – Beta 2012-08-03 17:30:00