मैंने Flexelint (पीसी-लिंट के यूनिक्स संस्करण) का उपयोग करने की कोशिश की है और कुछ मिश्रित परिणाम थे। यह संभावना है क्योंकि मैं एक बहुत बड़े और गाँठ कोड आधार पर काम कर रहा हूँ। मैं प्रत्येक फ़ाइल की सावधानीपूर्वक जांच करने की सलाह देता हूं जो अप्रयुक्त के रूप में रिपोर्ट की गई है।
मुख्य चिंता झूठी सकारात्मक है। एक ही हेडर के कई शामिल एक अनावश्यक हेडर के रूप में सूचित कर रहे हैं। यह बुरा है क्योंकि फ्लेक्सेल्ट आपको यह नहीं बताता है कि हेडर को किस लाइन पर शामिल किया गया है या यह पहले कहाँ शामिल था।
स्वचालित तरीकों में से एक यह गलत हो सकता है:
ए। हप्प में:
class A {
// ...
};
बी.एच.पी. में:
#include "A.hpp
class B {
public:
A foo;
};
C.cpp में:
#include "C.hpp"
#include "B.hpp" // <-- Unneeded, but lint reports it as needed
#include "A.hpp" // <-- Needed, but lint reports it as unneeded
यदि आप Flexelint के संदेशों का आँख बंद करके अनुसरण करते हैं, तो आप अपनी # निर्भरता को कम कर देंगे। अधिक रोग संबंधी मामले हैं, लेकिन मूल रूप से आपको सबसे अच्छे परिणामों के लिए हेडर का निरीक्षण करने की आवश्यकता है।
मैं अत्यधिक शारीरिक संरचना और C ++ के इस लेख को ब्लॉग गेम्स के भीतर से सुझाता हूं । वे # गंदगी को साफ करने के लिए एक व्यापक दृष्टिकोण की सलाह देते हैं:
दिशा-निर्देश
यहाँ लैक्स की पुस्तक से दिशानिर्देशों का एक आसुत सेट है जो फाइलों के बीच भौतिक निर्भरता की संख्या को कम करता है। मैं उन्हें सालों से इस्तेमाल कर रहा हूं और मैं हमेशा परिणामों से खुश रहा हूं।
- हर cpp फ़ाइल में पहले अपनी हेडर फ़ाइल शामिल होती है। [स्निप]
- एक हेडर फ़ाइल में उसे पार्स करने के लिए आवश्यक सभी हेडर फाइलें शामिल होनी चाहिए। [स्निप]
- एक हेडर फ़ाइल में पार्स करने के लिए आवश्यक न्यूनतम हेडर फाइलें होनी चाहिए। [स्निप]