मुझे पहले कहना है कि मुझे सी और सी ++ दोनों में उचित अनुभव मिला है। हालांकि, मैं सी में एक नई परियोजना शुरू कर रहा हूं और मैं ऑब्जेक्ट उन्मुख भाषाओं में इतनी देर (सी # और सी ++) में काम कर रहा हूं कि मुझे प्रक्रियात्मक भाषा में कार्यक्षमता को समाहित करने के प्रभावी तरीके से आने में परेशानी हो रही है। मेरा पहला विचार से ये सिर्फ मेरी OO ज्ञान पर वापस आते हैं और यह की तरह कुछ की संरचना करने गया था:प्रभावी ढंग से एक सी प्रोग्राम को कैसे व्यवस्थित करें
struct Foo
{
int x;
char *y;
};
struct Foo *new_Foo()
{
return (struct Foo *)malloc(sizeof(struct Foo));
}
void Foo_member_function(struct Foo *foo, int z)
{
foo->x = z;
}
लेकिन वह सिर्फ ऐसा नहीं है कि यह एक गरीब आदमी की OO है उल्लेख करने के लिए कठिन और सी की भावना के विपरीत लगता है।
यह प्रोग्राम आखिरकार काफी बड़ा हो जाएगा, इसलिए एक अच्छा डिजाइन संगठन से शुरू करना महत्वपूर्ण है। मैं सी में विकास के वर्षों के साथ कल्पना करता हूं, कुछ डिजाइन पैटर्न विकसित किए गए हैं ताकि रखरखाव के लिए कोड को सर्वोत्तम तरीके से कैसे बनाया जा सके। कार्यात्मक प्रोग्रामिंग की तरह, मुझे उम्मीद है कि प्रक्रियात्मक प्रोग्रामिंग में एक प्रतिमान है जो स्वच्छ और काफी पठनीय है।
प्रासंगिक लेखों और पुस्तकों के पॉइंटर्स भी स्वीकार्य हैं।
मुझे केवल एक जवाब चुनने से नफरत है क्योंकि उनके पास उपयोगी टिड्बिट हैं, लेकिन ओपेक पॉइंटर संदर्भ शायद सबसे उपयोगी चीज थी जिसे मुझे पता नहीं था। धन्यवाद! – HVS