1. म्याक्रोको मूलभूत
1.1 म्याक्रोको परिभाषा र प्रयोग
C भाषा मा म्याक्रोहरू #define निर्देश प्रयोग गरेर परिभाषित गरिन्छ। म्याक्रोले प्रोग्राम भित्रको विशेष स्ट्रिङलाई विशेष मान वा अभिव्यक्तिमा बदल्ने कार्य गर्दछ। उदाहरणका लागि, प्रोग्राममा बारम्बार प्रयोग हुने स्थिरांक वा जटिल अभिव्यक्तिहरूलाई म्याक्रो द्वारा परिभाषित गरेर, कोडको पढ्न सजिलोपन र मर्मत सम्भार क्षमता सुधार्न सकिन्छ।
#define PI 3.14159
#define SQUARE(x) ((x) * (x))
उपरोक्त उदाहरणमा, PI नामको स्थिरांक म्याक्रो र SQUARE नामको फलन म्याक्रो परिभाषित गरिएको छ। PI प्रोग्राममा 3.14159 मा बदलिन्छ, र SQUARE(x) दिइएको तर्क x को वर्गमा बदलिन्छ।
1.2 म्याक्रो र चलको भिन्नता
म्याक्रो कम्पाइल समयमा प्रीप्रोसेसरद्वारा प्रक्रिया गरिन्छ र साधारण स्ट्रिङ प्रतिस्थापनको रूपमा कार्य गर्दछ। अर्कोतर्फ, चलहरू कार्यसम्पादन समयमा मेमोरीमा व्यवस्थापन गरिन्छ, जसले म्याक्रो भन्दा बढी प्रोसेसिङ समय र मेमोरी खपत गर्दछ। म्याक्रोको कुनै प्रकार नहुनुका कारण, विभिन्न प्रकारका डाटामा लचिलो रूपमा प्रयोग गर्न सकिन्छ, तर प्रकार जाँच नहुनुका कारण, गलत प्रयोगले त्रुटि उत्पन्न हुन सक्छ, त्यसमा सावधान रहनु आवश्यक छ।
2. सशर्त म्याक्रो
2.1 #if
、#ifndef
、#ifdef
को प्रयोग
सशर्त म्याक्रोले、#if
、#ifndef
、#ifdef
जस्ता निर्देशहरू प्रयोग गरेर、विशिष्ट शर्तहरूमा आधारित कोडको केही भागलाई कम्पाइल गर्ने कि न गर्ने नियन्त्रण गर्ने कार्य हो।
#define DEBUG 1
#if DEBUG
printf("डिबग मोडn");
#endif
उपरोक्त उदाहरणमा、DEBUG
परिभाषित भएमा、printf
कथन कम्पाइल हुन्छ।#ifdef
विशेष म्याक्रो परिभाषित छ कि छैन जाँच्न प्रयोग गरिन्छ、#ifndef
विशेष म्याक्रो परिभाषित छैन भने प्रयोग गरिन्छ।
2.2 सशर्त म्याक्रोको प्रयोग
सशर्त म्याक्रो प्रोग्रामको डिबग कोडलाई सजिलै व्यवस्थापन गर्न प्रयोग गरिन्छ। साथै, प्लेटफर्म-विशिष्ट कोड समावेश गर्ने अवस्थामा वा कम्पाइल विकल्पहरू अनुसार विभिन्न प्रक्रिया गर्न आवश्यक परेमा पनि प्रयोग गरिन्छ।
3. Function Macro
3.1 Function Macro को परिभाषा र प्रयोग विधि
Function macro भनेको आर्गुमेन्ट लिन सक्ने म्याक्रो हो, जसलाई सामान्य फङ्सन जस्तै प्रयोग गर्न सकिन्छ। Function macro प्रयोग गर्दा, प्रकारमा निर्भर नगर्ने प्रक्रिया गर्न सम्भव हुन्छ।
#define MAX(a, b) ((a) > (b) ? (a) : (b))
यो उदाहरणमा、MAX(a, b)
ले दुई मानहरू मध्ये ठूलो मान फिर्ता गर्ने function macro परिभाषित गर्दछ। MAX
कुनै पनि प्रकारको लागि प्रयोग गर्न सकिन्छ, र प्रकारसँग सम्बन्ध नहुनै अधिकतम मान प्राप्त गर्न सक्छ।
3.2 Function Macro को फाइदा र बेफाइदा
Function macro को फाइदा भनेको प्रकारमा निर्भर नहुनु हो, जसले विभिन्न प्रकारको डेटा मा सामान्य रूपमा प्रयोग गर्न सकिन्छ। तर, function macro मा केही बेफाइदाहरू पनि छन्। मुख्य बेफाइदा भनेको प्रकार जाँच नहुनु हो, जसले गलत आर्गुमेन्ट पास गर्दा त्रुटि उत्पन्न हुँदैन। साथै, function macro डिबग गर्न कठिन हुन्छ, र जटिल अभिव्यक्तिहरू प्रयोग गर्दा अनपेक्षित व्यवहार हुन सक्छ।

4. म्याक्रोको व्यावहारिक उदाहरणहरू
4.1 डिबग कोडको थप र हटाउने
म्याक्रोहरू डिबग कोडको सक्रियकरण वा निष्क्रियकरणलाई सजिलै गर्न प्रयोग गरिन्छ। उदाहरणका लागि, डिबग मोडमा अतिरिक्त लगहरू आउटपुट गरिन्छ, र रिलीज समयमा तिनीहरूलाई निष्क्रिय गर्न सकिन्छ।
#ifdef DEBUG
#define LOG(x) printf(x)
#else
#define LOG(x)
#endif
यस उदाहरणमा、DEBUG
परिभाषित भएको अवस्थामा मात्रLOG
म्याक्रो सक्रिय हुन्छ, रprintf
कार्यान्वयन हुन्छ। रिलीज समयमाDEBUG
को परिभाषा हटाएर डिबग आउटपुटलाई निष्क्रिय गर्न सकिन्छ।
4.2 सर्ताधारित कोड लेख्ने तरिका
प्लेटफर्म‑विशिष्ट कोडलाई सर्ताधारित म्याक्रोले नियन्त्रण गर्ने पनि प्रायः गरिन्छ।
#ifdef _WIN32
printf("Windows वातावरण होn");
#else
printf("अन्य वातावरण होn");
#endif
यो कोडले Windows वातावरणमा मात्र विशेष प्रक्रिया चलाउँछ, र अन्य प्लेटफर्महरूमा फरक प्रक्रिया गर्दछ। सर्ताधारित म्याक्रो प्रयोग गरेर कोडको पोर्टेबिलिटी बढाउन सकिन्छ।
5. म्याक्रो प्रयोग गर्दा ध्यान दिनु पर्ने बुँदाहरू
5.1 म्याक्रोका बेफाइदाहरू
म्याक्रो एक शक्तिशाली कार्यक्षमता हो, तर प्रयोग गर्दा सावधानी आवश्यक छ। विशेष गरी, फङ्सन म्याक्रोमा प्रकार जाँच हुँदैन, जसले गर्दा गलत आर्गुमेन्ट पास गर्दा पनि त्रुटि नआउने सम्भावना हुन्छ। साथै, डिबग गर्दा म्याक्रो विस्तार पछि कोड हेर्न कठिन हुन्छ, जसले बगको कारण पत्ता लगाउन गाह्रो बनाउँछ।
5.2 सुरक्षित म्याक्रो प्रयोग गर्ने तरिका
सुरक्षित रूपमा म्याक्रो प्रयोग गर्नका लागि तलका बुँदाहरूमा ध्यान दिनु आवश्यक छ।
- म्याक्रोको नाममा सबै अक्षरहरू ठूला अक्षरमा प्रयोग गर्नुहोस्, जसले सामान्य भेरिएबल वा फङ्सनसँग सजिलै फरक गर्न सकिन्छ।
- जटिल अभिव्यक्तिहरूलाई म्याक्रोमा परिभाषित नगर्नुहोस्। आवश्यक परेमा सामान्य फङ्सन प्रयोग गर्नुहोस्।
- म्याक्रो प्रयोग गर्दा, यसको प्रयोग र उद्देश्यलाई टिप्पणीमा स्पष्ट गर्नुहोस्।
5.3 कोडिङ्ग नियमावलीमा म्याक्रोको सर्वश्रेष्ठ अभ्यास
परियोजनाको कोडिङ्ग नियमावलीमा, म्याक्रो प्रयोग सम्बन्धी नियमहरू निर्धारण गर्नु सामान्य हो। उदाहरणका लागि, म्याक्रो प्रयोग गर्दा फङ्सन म्याक्रोलाई टालेर, स्थिरांक म्याक्रो मात्र प्रयोग गर्न सिफारिस गरिन्छ। साथै, सम्भव भएमा const
प्रयोग गरेर स्थिरांक परिभाषित गर्न, म्याक्रो प्रयोगलाई न्यूनतम राख्न पनि सिफारिस गरिन्छ।
6. सारांश
C भाषा मा म्याक्रोहरू प्रोग्रामको कार्यक्षमता र पठनीयता सुधार्नका लागि महत्वपूर्ण उपकरण हुन्। तर, यसको शक्तिशाली कार्यक्षमता कारण गलत प्रयोग गर्दा अनपेक्षित बगहरू उत्पन्न हुन सक्छ। यस लेखमा, म्याक्रोको आधारभूतदेखि व्यावहारिक उदाहरण, प्रयोग गर्दा ध्यान दिनुपर्ने बुँदासम्म समेटिएको छ। सही तरिकाले म्याक्रो प्रयोग गरेर, कार्यक्षम र मर्मतयोग्य कोड लेख्न सकिन्छ।