సి ++ లో ఇన్లైన్ మరియు మాక్రో మధ్య తేడా
విషయము
మాక్రో అనేది ఒక ఇన్స్ట్రక్షన్ సమయంలో విస్తరించే ఒక సూచన. మాక్రోల మాదిరిగా విధులను కూడా నిర్వచించవచ్చు. అదేవిధంగా, ఇన్లైన్ ఫంక్షన్లు దాని ఆహ్వానం సమయంలో కూడా విస్తరిస్తాయి. ఇన్లైన్ మరియు స్థూల ఫంక్షన్ మధ్య ఒక ప్రాధమిక వ్యత్యాసం ఏమిటంటే ఇన్లైన్ విధులు సమయంలో విస్తరించబడతాయి సంగ్రహం, ఇంకా macros ప్రోగ్రామ్ ప్రాసెస్ చేసినప్పుడు విస్తరించబడుతుంది ప్రాసెసర్.
పోలిక చార్ట్ సహాయంతో ఇన్లైన్ మరియు స్థూల మధ్య వ్యత్యాసాన్ని అధ్యయనం చేద్దాం.
- పోలిక చార్ట్
- నిర్వచనం
- కీ తేడాలు
- ముగింపు
పోలిక చార్ట్
పోలిక కోసం ఆధారం | లైన్ లో | మాక్రో |
---|---|---|
ప్రాథమిక | ఇన్లైన్ ఫంక్షన్లు కంపైలర్ చేత అన్వయించబడతాయి. | మాక్రోలు ప్రిప్రాసెసర్ చేత విస్తరించబడతాయి. |
సింటాక్స్ | ఇన్లైన్ రిటర్న్_టైప్ ఫంక్ట్_పేరు (పారామితులు) {. . . } | # స్థూల_పేరు చార్_అనుకలను నిర్వచించండి |
ఉపయోగించిన కీలకపదాలు | లైన్ లో | # define |
నిర్వచిత | తరగతి లోపల లేదా వెలుపల దీనిని నిర్వచించవచ్చు. | ఇది ఎల్లప్పుడూ ప్రోగ్రామ్ ప్రారంభంలో నిర్వచించబడుతుంది. |
మూల్యాంకనం | ఇది ఒక్కసారి మాత్రమే వాదనను అంచనా వేస్తుంది. | ఇది కోడ్లో ఉపయోగించిన ప్రతిసారీ వాదనను అంచనా వేస్తుంది. |
విస్తరణ | కంపైలర్ అన్ని ఫంక్షన్లను ఇన్లైన్ చేసి విస్తరించకపోవచ్చు. | మాక్రోలు ఎల్లప్పుడూ విస్తరించబడతాయి. |
ఆటోమేషన్ | తరగతి లోపల నిర్వచించబడిన చిన్న ఫంక్షన్లు స్వయంచాలకంగా ఇన్లైన్ ఫంక్షన్లలో తయారు చేయబడతాయి. | మాక్రోలను ప్రత్యేకంగా నిర్వచించాలి. |
యాక్సెస్ | ఇన్లైన్ సభ్యుల ఫంక్షన్ తరగతి యొక్క డేటా సభ్యులను యాక్సెస్ చేయగలదు. | మాక్రోస్ ఎప్పుడూ తరగతి సభ్యులుగా ఉండలేరు మరియు తరగతి యొక్క డేటా సభ్యులను యాక్సెస్ చేయలేరు. |
తొలగింపులు | ఇన్లైన్ ఫంక్షన్ యొక్క నిర్వచనం ఇన్లైన్ ఫంక్షన్ చివరిలో వంకర బ్రాకెట్లతో ముగుస్తుంది. | స్థూల నిర్వచనం కొత్త పంక్తితో ముగుస్తుంది. |
డీబగ్గింగ్ | సంకలనం సమయంలో లోపం తనిఖీ చేయబడినందున ఇన్లైన్ ఫంక్షన్ కోసం డీబగ్గింగ్ సులభం. | సంకలనం సమయంలో లోపం తనిఖీ జరగనందున డీబగ్గింగ్ మాక్రోలకు కష్టమవుతుంది. |
బైండింగ్ | ఇన్లైన్ ఫంక్షన్ ఫంక్షన్ యొక్క శరీరంలోని అన్ని స్టేట్మెంట్లను బాగా బంధిస్తుంది, ఫంక్షన్ యొక్క శరీరం ప్రారంభమవుతుంది మరియు వంకర బ్రాకెట్లతో ముగుస్తుంది. | ఒక స్థూలానికి ఒకటి కంటే ఎక్కువ స్టేట్మెంట్ ఉంటే, దానికి ముగింపు చిహ్నం లేనందున బైండింగ్ సమస్యను ఎదుర్కొంటుంది. |
ఇన్లైన్ యొక్క నిర్వచనం
ఇన్లైన్ ఫంక్షన్ రెగ్యులర్ ఫంక్షన్ లాగా కనిపిస్తుంది, కానీ దీనికి ముందు కీవర్డ్ “లైన్ లో". ఇన్లైన్ ఫంక్షన్లు చిన్న పొడవు ఫంక్షన్లు, వీటిని పిలవడానికి బదులుగా దాని పిలుపు సమయంలో విస్తరిస్తాయి. ఉదాహరణతో ఇన్లైన్ ఫంక్షన్లను అర్థం చేసుకుందాం.
# ఉన్నాయి పై ప్రోగ్రామ్లో, క్లాస్ “ఉదాహరణ” లో ఇన్లైన్ ఫంక్షన్గా ఫంక్షన్ ప్రారంభిస్తుంది () అని నేను ప్రకటించాను మరియు నిర్వచించాను. క్లాస్ "ఉదాహరణ" యొక్క ఆబ్జెక్ట్ చేత ప్రారంభించబడిన చోట ప్రారంభ () ఫంక్షన్ యొక్క కోడ్ విస్తరిస్తుంది .క్లాస్ ఉదాహరణలో నిర్వచించిన ఫంక్షన్ డిస్ప్లే () ఇన్లైన్గా ప్రకటించబడదు కాని ఇది కంపైలర్ చేత ఇన్లైన్ గా పరిగణించబడుతుంది, C ++ లో క్లాస్ లోపల నిర్వచించిన ఫంక్షన్ స్వయంచాలకంగా కంపైలర్ చేత ఫంక్షన్ యొక్క పొడవును పరిగణనలోకి తీసుకుంటుంది. మాక్రో అనేది “ప్రిప్రాసెసర్స్ డైరెక్టివ్”. సంకలనానికి ముందు, ప్రోగ్రామ్ ప్రిప్రాసెసర్ చేత పరిశీలించబడుతుంది మరియు ప్రోగ్రామ్లో స్థూలతను ఎక్కడ కనుగొన్నా, అది ఆ స్థూల స్థానాన్ని దాని నిర్వచనం ప్రకారం భర్తీ చేస్తుంది. అందువల్ల, స్థూలని "పున ment స్థాపన" గా పరిగణిస్తారు. ఒక ఉదాహరణతో స్థూల అధ్యయనం చేద్దాం. # ఉన్నాయి పై కోడ్లో, నేను మాక్రో ఫంక్షన్ GREATER () ను ప్రకటించాను, ఇది రెండు పారామితుల యొక్క ఎక్కువ సంఖ్యను పోల్చి కనుగొంటుంది. మాక్రోను కొత్త పంక్తి ద్వారా మాత్రమే ముగించినందున స్థూలతను ముగించడానికి సెమికోలన్ లేదని మీరు గమనించవచ్చు. స్థూల స్థానం కేవలం పున ment స్థాపన కాబట్టి, అది స్థూల సంకేతాన్ని విస్తరిస్తుంది. స్థూల ఫంక్షన్ కంటే ఇన్లైన్ ఫంక్షన్లు చాలా నమ్మదగినవి. C ++ స్థిరాంకాన్ని నిర్వచించడానికి మంచి మార్గాన్ని కూడా అందిస్తుంది, ఇది “const” కీవర్డ్ని ఉపయోగిస్తుంది.
మాక్రో యొక్క నిర్వచనం
తీర్మానాలు: