2010-11-19 12 views
6

में शामिल है, मैंने अभी एक समस्या हल करने के लिए एक विचार आया है और इसे साझा करना चाहता हूं। क्षमा करें अगर बहुत बेकार है।अंतर्निहित समाधान के लिए आइडिया सी, सी ++

तो, एक बड़ी सी ++ परियोजना की समीक्षा कर रहा हूं, जिसमें कई शामिल हैं जो अन्य से प्रतीकों पर निर्भर करता है लेकिन इसमें आवश्यक शामिल नहीं है। "गायब प्रतीक" विफलताओं में निर्माण प्रक्रिया परिणामों में कोई मामूली परिवर्तन।

इसलिए सभी को एक बार में स्वयं-रोकथाम के लिए जांचने के लिए, मैं सभी * .h की खोज करता हूं, फ्लाई पर एक सीपीपी-फाइल बनाता हूं जिसमें केवल # शामिल है- इस .h फ़ाइल के साथ स्टेटमेंट और संकलन करने का प्रयास करें यह। अंत में मैं "अच्छी" और "खराब" की एक सूची प्राप्त करता हूं जिसमें फाइलें शामिल हैं। कूल यह नहीं है :-) या क्या ऐसा करने का कोई आसान समाधान है?

+2

यदि आप निहित घोषणा चेतावनियां सक्षम करना चाहते हैं और चेतावनियों का इलाज अपने कंपाइलर विकल्पों में त्रुटियों के रूप में करते हैं तो आप इन्हें भी नहीं पकड़ पाएंगे? – tdammers

+2

-1: निश्चित रूप से, अच्छा विचार, लेकिन यह एक असली सवाल नहीं है। –

+1

@ एंड्रेस: ​​श्री प्रश्न पुलिस, यह एक प्रश्न है, और यह पूछता है कि –

उत्तर

12

यदि प्रत्येक .cpp फ़ाइल में पहले अपनी हेडर-फ़ाइल शामिल है, और फिर अन्य शीर्षलेख, तो आप बाहरी उपकरणों का उपयोग किये बिना यह चेक प्राप्त करेंगे।

पसंदीदा आदेश छिपा निर्भरता कम कर देता है:

यह वास्तव में एक ही कारण के लिए Googles C++ Style Guide का हिस्सा है। हम प्रत्येक शीर्षलेख फ़ाइल को स्वयं पर संकलित करने के लिए चाहते हैं। इसे प्राप्त करने का सबसे आसान तरीका सुनिश्चित करना है कि उनमें से प्रत्येक पहले .h फ़ाइल # कुछ .cc में शामिल है।

यदि आपके पास कोई शीर्षलेख फ़ाइलें हैं जो संबंधित .cpp-file नहीं है, तो आपको उनके लिए कुछ खास करना होगा।

+0

+1 धन्यवाद! मैं हमेशा इस दृष्टिकोण का उपयोग करता हूं, लेकिन कारणों को याद नहीं कर सकता और तर्क नहीं दे सका। अब मुझे पता है! Google स्टाइल गाइड को इंगित करने के लिए भी धन्यवाद! –

+1

दुर्भाग्यवश आप इस शैली के साथ प्रीकंपील्ड हेडर का उपयोग नहीं कर सकते: \ – Inverse

+0

@ व्यस्त: दिलचस्प! मैंने कभी भी उन्हें कभी भी इस्तेमाल नहीं किया है, क्या शर्म की बात है :-( –

1

यह अच्छी संख्या रही है, लेकिन मेरा मानना ​​है कि लिंट आपके लिए यह करता है। और मुझे याद है कि लिंट आपको यह भी बताता है कि एक अगली घोषणा कब होगी जब फ़ाइल शामिल की जाएगी।

+0

ठीक है, धन्यवाद! इस ग्राहक-कोड में मैंने कई लिंट प्रागम्स भी देखे हैं। मुझे उनसे पूछना चाहिए कि वे इस लिंट चेतावनी से कैसे निपटते हैं। शायद दबाया गया: -) –

+1

मुझे याद है कि लिंट 'में एक हंसी के लिए सभी चेतावनियों को सक्षम करना'। 1.2 मिलियन त्रुटियां और एक सप्ताहांत में भाग लेने के लिए लिया। सभी चेतावनियों को बंद करना और धीरे-धीरे उन्हें चालू करना बेहतर है, आपको जो चाहिए उसे ठीक करें और फिर अगली प्रगति करें। मुझे केवल 15 या उससे भी ज्यादा दिलचस्पी थी। –

संबंधित मुद्दे