मैं मध्यम आकार के C लाइब्रेरी प्रोजेक्ट के लिए फ़ंक्शन नामकरण परंपराओं पर व्यावहारिक वास्तविक-विश्व सलाह खोजने के लिए संघर्ष कर रहा हूं। मेरी लाइब्रेरी परियोजना को कुछ मॉड्यूल और अपने स्वयं के हेडर के साथ सबमॉडल्स में विभाजित किया गया है, और शिथिल एक OO शैली का अनुसरण करता है (सभी फ़ंक्शन पहले तर्क के रूप में एक निश्चित संरचना लेते हैं, कोई ग्लोबल्स आदि)। यह हमारी तरह कुछ रखी है:
MyLib
- Foo
- foo.h
- foo_internal.h
- some_foo_action.c
- another_foo_action.c
- Baz
- baz.h
- some_baz_action.c
- Bar
- bar.h
- bar_internal.h
- some_bar_action.c
आम तौर पर फ़ंक्शन बहुत अधिक बड़े होते हैं (उदाहरण के लिए) स्टिक some_foo_actionऔर another_foo_actionएक foo.cकार्यान्वयन फ़ाइल में, अधिकांश फ़ंक्शन को स्थिर बनाते हैं, और इसे एक दिन कहते हैं।
मैं अपने ग्राहक कार्यक्रमों के साथ अपने उपयोगकर्ताओं के लिए संघर्ष से बचने के लिए पुस्तकालय का निर्माण करते समय अपने आंतरिक ("मॉड्यूल निजी") प्रतीकों को हटाने के साथ सौदा कर सकता हूं, लेकिन सवाल यह है कि मेरे पुस्तकालय में प्रतीकों का नाम कैसे दिया जाए? अब तक मैं कर रहा हूँ:
struct MyLibFoo;
void MyLibFooSomeAction(MyLibFoo *foo, ...);
struct MyLibBar;
void MyLibBarAnAction(MyLibBar *bar, ...);
// Submodule
struct MyLibFooBaz;
void MyLibFooBazAnotherAction(MyLibFooBaz *baz, ...);
लेकिन मैं पागल लंबे प्रतीक नामों (उदाहरणों की तुलना में लंबे समय तक) के साथ समाप्त कर रहा हूं। अगर मैं "नकली नाम स्थान" के साथ नामों को उपसर्ग नहीं करता हूं, तो मॉड्यूल के आंतरिक प्रतीक सभी टकरावों का नाम देते हैं।
नोट: मैं ऊंट / पास्कल मामले आदि के बारे में परवाह नहीं करता, बस खुद के नाम।
git mergeआईएनजी के साथ बहुत मदद करता है । उदाहरण के रूप में मेरे पास ओपनजीएल के साथ यूआई ड्राइंग के लिए एक मॉड्यूल है, और मेरे पास.cप्रत्येक तत्व के लिए अलग-अलग फाइलें हैं जिनकी मुझे आवश्यकता है (slider.c,indicator.cआदि)। इन तत्वों के कार्यान्वयन में एक मुख्य ड्राइंग फ़ंक्शन हो सकता है कि कुछ सौ लाइनें लंबी हों, और उचित संख्या मेंstaticसहायक हों। वे यूआई मॉड्यूल के भीतर से कुछ शुद्ध ज्यामिति फ़ंक्शन भी कहते हैं। क्या यह ध्वनि काफी सामान्य है?