சி ++ இல் இன்லைன் மற்றும் மேக்ரோ இடையே உள்ள வேறுபாடு

நூலாசிரியர்: Laura McKinney
உருவாக்கிய தேதி: 2 ஏப்ரல் 2021
புதுப்பிப்பு தேதி: 16 மே 2024
Anonim
சி ++ இல் இன்லைன் மற்றும் மேக்ரோ இடையே உள்ள வேறுபாடு - தொழில்நுட்பம்
சி ++ இல் இன்லைன் மற்றும் மேக்ரோ இடையே உள்ள வேறுபாடு - தொழில்நுட்பம்

உள்ளடக்கம்


மேக்ரோ என்பது ஒரு அறிவுறுத்தலாகும், இது அதன் அழைப்பின் போது விரிவடைகிறது. மேக்ரோக்களைப் போலவே செயல்பாடுகளையும் வரையறுக்கலாம். இதேபோல், இன்லைன் செயல்பாடுகளும் அதன் அழைப்பின் கட்டத்தில் விரிவடைகின்றன. இன்லைன் மற்றும் மேக்ரோ செயல்பாட்டிற்கு இடையிலான ஒரு முதன்மை வேறுபாடு என்னவென்றால் இன்லைன் செயல்பாடுகள் போது விரிவாக்கப்படுகின்றன தொகுப்பு, மற்றும் இந்த மேக்ரோக்கள் நிரல் செயலாக்கும்போது விரிவாக்கப்படும் என்பதன்.

ஒப்பீட்டு விளக்கப்படத்தின் உதவியுடன் இன்லைன் மற்றும் மேக்ரோ இடையேயான வித்தியாசத்தைப் படிப்போம்.

  1. ஒப்பீட்டு விளக்கப்படம்
  2. வரையறை
  3. முக்கிய வேறுபாடுகள்
  4. தீர்மானம்

ஒப்பீட்டு விளக்கப்படம்

ஒப்பீட்டுக்கான அடிப்படைகோட்டில்மேக்ரோ
அடிப்படை இன்லைன் செயல்பாடுகள் தொகுப்பால் பாகுபடுத்தப்படுகின்றன.மேக்ரோக்கள் ப்ராப்ரோசஸரால் விரிவாக்கப்படுகின்றன.
தொடரியல்இன்லைன் ரிட்டர்ன்_ டைப் ஃபங்க்_பெயர் (அளவுருக்கள்) {. . . }# மேக்ரோ_பெயர் கரி_அறிவிப்பை வரையறுக்கவும்
பயன்படுத்தப்படும் முக்கிய வார்த்தைகள்கோட்டில்
வரையறுத்து
வரையறுத்தஅதை வகுப்பினுள் அல்லது வெளியே வரையறுக்கலாம்.இது எப்போதும் திட்டத்தின் தொடக்கத்தில் வரையறுக்கப்படுகிறது.
மதிப்பீட்டுஇது ஒரு முறை மட்டுமே வாதத்தை மதிப்பீடு செய்கிறது.ஒவ்வொரு முறையும் குறியீட்டில் பயன்படுத்தப்படும்போது அது வாதத்தை மதிப்பீடு செய்கிறது.
விரிவாக்கம் கம்பைலர் அனைத்து செயல்பாடுகளையும் இன்லைன் செய்து விரிவாக்கக்கூடாது.மேக்ரோக்கள் எப்போதும் விரிவாக்கப்படுகின்றன.
ஆட்டோமேஷன்வகுப்பினுள் வரையறுக்கப்பட்ட குறுகிய செயல்பாடுகள் தானாக இன்லைன் செயல்பாடுகளில் செய்யப்படுகின்றன.மேக்ரோக்கள் குறிப்பாக வரையறுக்கப்பட வேண்டும்.
அணுகும்இன்லைன் உறுப்பினர் செயல்பாடு வகுப்பின் தரவு உறுப்பினர்களை அணுக முடியும்.மேக்ரோக்கள் ஒருபோதும் வகுப்பின் உறுப்பினர்களாக இருக்க முடியாது மற்றும் வகுப்பின் தரவு உறுப்பினர்களை அணுக முடியாது.
முடித்தல்இன்லைன் செயல்பாட்டின் வரையறை இன்லைன் செயல்பாட்டின் முடிவில் சுருள் அடைப்புக்குறிகளுடன் முடிவடைகிறது.மேக்ரோவின் வரையறை புதிய வரியுடன் முடிவடைகிறது.
பிழைதிருத்தம்தொகுப்பின் போது பிழை சரிபார்ப்பு செய்யப்படுவதால் பிழைத்திருத்தம் ஒரு இன்லைன் செயல்பாட்டிற்கு எளிதானது.தொகுப்பின் போது பிழை சரிபார்ப்பு ஏற்படாததால் பிழைத்திருத்தம் மேக்ரோக்களுக்கு கடினமாகிறது.
பிணைப்புஒரு இன்லைன் செயல்பாடு செயல்பாட்டின் உடலில் உள்ள அனைத்து அறிக்கைகளையும் நன்றாக பிணைக்கிறது, மேலும் செயல்பாட்டின் உடல் துவங்கி சுருள் அடைப்புக்குறிகளுடன் முடிகிறது.ஒரு மேக்ரோ ஒன்றுக்கு மேற்பட்ட அறிக்கைகளைக் கொண்டிருந்தால் பிணைப்பு சிக்கலை எதிர்கொள்கிறது, ஏனெனில் அதற்கு முடித்தல் சின்னம் இல்லை.


இன்லைன் வரையறை

ஒரு இன்லைன் செயல்பாடு வழக்கமான செயல்பாடாகத் தோன்றுகிறது, ஆனால் அதற்கு முன்னதாக “கோட்டில்". இன்லைன் செயல்பாடுகள் குறுகிய நீள செயல்பாடுகளாகும், அவை அழைக்கப்படுவதற்குப் பதிலாக அதன் அழைப்பின் போது விரிவாக்கப்படுகின்றன. ஒரு எடுத்துக்காட்டுடன் இன்லைன் செயல்பாடுகளைப் புரிந்துகொள்வோம்.

#சேர்க்கிறது பெயர்வெளியைப் பயன்படுத்துதல்; வர்க்க உதாரணம் {int a, b; பொது: இன்லைன் வெற்றிட துவக்கம் (int x, int y) {a = x; b = y} வெற்றிட காட்சி () {cout << a << "" <

மேலேயுள்ள நிரலில், “உதாரணம்” வகுப்பில் ஒரு இன்லைன் செயல்பாடாக, செயல்பாடு () துவக்குகிறது. துவக்க () செயல்பாட்டின் குறியீடு வர்க்கத்தின் “எடுத்துக்காட்டு” இன் பொருளால் செயல்படுத்தப்படும் இடத்தில் விரிவடையும். வகுப்பு எடுத்துக்காட்டில் வரையறுக்கப்பட்ட செயல்பாட்டு காட்சி () இன்லைன் என அறிவிக்கப்படவில்லை, ஆனால் இது கம்பைலரால் இன்லைன் என்று கருதப்படலாம், சி ++ இல், வகுப்பினுள் வரையறுக்கப்பட்ட செயல்பாடு தானாகவே தொகுப்பின் மூலம் செயல்பாட்டின் நீளத்தைக் கருத்தில் கொண்டு இன்லைன் செய்யப்படுகிறது.


  • இன்லைன் செயல்பாடு செயல்பாட்டு அழைப்பு மற்றும் திரும்புவதற்கான மேல்நிலைகளைக் குறைக்கிறது, இது நிரலை செயல்படுத்தும் நேரத்தைக் குறைக்கிறது.மேலும், வாதங்கள் அடுக்கில் தள்ளப்பட்டு, ஒரு செயல்பாடு அழைக்கப்படும் போது பதிவேடுகள் சேமிக்கப்படும் மற்றும் செயல்பாடு திரும்பும்போது மீட்டமைக்கப்படும், இது நேரம் எடுக்கும், இது ஒவ்வொரு முறையும் உள்ளூர் மாறிகள் மற்றும் முறையான அளவுருக்களை உருவாக்க வேண்டிய அவசியமில்லை என்பதால் இன்லைன் செயல்பாடுகளால் இது தவிர்க்கப்படுகிறது. .
  • இன்லைன் செயல்பாடுகள் வகுப்பில் உறுப்பினராக இருக்கலாம் மற்றும் வகுப்பின் தரவு உறுப்பினரையும் அணுகலாம்.
  • இன்லைன் செயல்பாடு நிரலை இயக்கும் நேரத்தை குறைக்கிறது, ஆனால் சில நேரங்களில் இன்லைன் செயல்பாட்டின் நீளம் அதிகமாக இருந்தால், நகல் குறியீடு காரணமாக நிரலின் அளவும் அதிகரிக்கும். எனவே, மிகச் சிறிய செயல்பாடுகளை கோடிட்டுக் காட்டுவது ஒரு நல்ல நடைமுறை.
  • இன்லைன் செயல்பாட்டின் வாதம் ஒரு முறை மட்டுமே மதிப்பீடு செய்யப்படுகிறது.

மேக்ரோவின் வரையறை

மேக்ரோ ஒரு “ப்ராப்ரோசெசர்ஸ் டைரெக்டிவ்” ஆகும். தொகுப்பதற்கு முன், நிரல் ப்ராப்ரோசெசரால் ஆராயப்படுகிறது, மேலும் நிரலில் மேக்ரோவைக் கண்டறிந்தால், அது அந்த மேக்ரோவை அதன் வரையறையால் மாற்றுகிறது. எனவே, மேக்ரோ “மாற்று” என்று கருதப்படுகிறது. ஒரு உதாரணத்துடன் மேக்ரோவைப் படிப்போம்.

#சேர்க்கிறது # GREATER (a, b) ((a <b)? b: a) int main (void) {cout << "10 மற்றும் 20 இன் பெரியது" << GREATER ("20", "10") << " n,"; திரும்ப 0; }

மேலே உள்ள குறியீட்டில், GREATER () என்ற மேக்ரோ செயல்பாட்டை அறிவித்தேன், இது இரண்டு அளவுருக்களின் அதிக எண்ணிக்கையை ஒப்பிட்டு கண்டுபிடிக்கும். மேக்ரோ புதிய வரியால் மட்டுமே நிறுத்தப்படுவதால் மேக்ரோவை நிறுத்த அரைக்காற்புள்ளி இல்லை என்பதை நீங்கள் அவதானிக்கலாம். மேக்ரோ ஒரு மாற்றாக இருப்பதால், அது செயல்படுத்தப்படும் மேக்ரோ குறியீட்டை விரிவாக்கும்.

  • மேக்ரோக்கள் எப்போதுமே பெரிய எழுத்துக்களில் வரையறுக்கப்படுகின்றன, படிக்கும் போது புரோகிராமர்கள் நிரலில் உள்ள அனைத்து மேக்ரோக்களையும் எளிதாக அடையாளம் காண்பார்கள்.
  • மேக்ரோ ஒருபோதும் ஒரு வகுப்பின் உறுப்பினர் செயல்பாடாக இருக்க முடியாது, மேலும் எந்தவொரு வகுப்பினதும் தரவு உறுப்பினர்களை அணுக முடியாது.
  • மேக்ரோ செயல்பாடு அதன் வரையறையில் தோன்றும் ஒவ்வொரு முறையும் வாதத்தை மதிப்பிடுகிறது, இது எதிர்பாராத முடிவை ஏற்படுத்துகிறது.
  • பெரிய மேக்ரோக்கள் தேவையில்லாமல் குறியீட்டின் அளவை அதிகரிக்கும் என்பதால் மேக்ரோ சிறிய அளவு இருக்க வேண்டும்.
  1. இன்லைன் மற்றும் மேக்ரோவிற்கான அடிப்படை வேறுபாடு என்னவென்றால், ஒரு இன்லைன் செயல்பாடுகள் கம்பைலரால் பாகுபடுத்தப்படுகின்றன, அதேசமயம், ஒரு நிரலில் உள்ள மேக்ரோக்கள் ப்ராப்ரோசஸரால் விரிவாக்கப்படுகின்றன.
  2. இன்லைன் செயல்பாட்டை வரையறுக்கப் பயன்படுத்தப்படும் முக்கிய சொல் “கோட்டில்”அதேசமயம், ஒரு மேக்ரோவை வரையறுக்கப் பயன்படுத்தப்படும் முக்கிய சொல்“வரையறுத்து“.
  3. ஒரு வகுப்பினுள் இன்லைன் செயல்பாடு சிதைந்தவுடன், அதை ஒரு வகுப்பினுள் அல்லது ஒரு வகுப்பிற்கு வெளியே வரையறுக்கலாம். மறுபுறம், ஒரு மேக்ரோ எப்போதும் திட்டத்தின் தொடக்கத்தில் வரையறுக்கப்படுகிறது.
  4. இன்லைன் செயல்பாடுகளுக்கு அனுப்பப்பட்ட வாதம் ஒரு முறை மட்டுமே தொகுக்கப்படுகிறது, அதேசமயம், ஒவ்வொரு முறையும் ஒரு மேக்ரோ குறியீட்டில் பயன்படுத்தப்படும்போது மேக்ரோஸ் வாதம் மதிப்பீடு செய்யப்படுகிறது.
  5. கம்பைலர் ஒரு வகுப்பினுள் வரையறுக்கப்பட்ட அனைத்து செயல்பாடுகளையும் இன்லைன் செய்து விரிவாக்கக்கூடாது. மறுபுறம், மேக்ரோக்கள் எப்போதும் விரிவாக்கப்படுகின்றன.
  6. இன்லைன் முக்கிய சொல் இல்லாமல் ஒரு வகுப்பினுள் வரையறுக்கப்பட்ட குறுகிய செயல்பாடு தானாக இன்லைன் செயல்பாடுகளாக செய்யப்படுகிறது. மறுபுறம், மேக்ரோவை குறிப்பாக வரையறுக்க வேண்டும்.
  7. இன்லைனில் இருக்கும் ஒரு செயல்பாடு வகுப்பின் உறுப்பினர்களை அணுக முடியும், அதேசமயம் ஒரு மேக்ரோ ஒருபோதும் வகுப்பின் உறுப்பினர்களை அணுக முடியாது.
  8. இன்லைன் செயல்பாட்டை நிறுத்த ஒரு மூடிய சுருள் பிரேஸ் தேவைப்படுகிறது, அதேசமயம் ஒரு புதிய வரியின் தொடக்கத்துடன் ஒரு மேக்ரோ நிறுத்தப்படுகிறது.
  9. ஏதேனும் பிழைக்கான தொகுப்பின் போது சரிபார்க்கப்படுவதால் பிழைத்திருத்தம் இன்லேன் செயல்பாட்டிற்கு எளிதாகிறது. மறுபுறம், ஒரு மேக்ரோ தொகுக்கும்போது சரிபார்க்கப்படவில்லை, எனவே ஒரு மேக்ரோவை பிழைதிருத்தம் செய்வது கடினம்.
  10. ஒரு இன்லைன் செயல்பாடு அதன் உறுப்பினர்களை தொடக்க மற்றும் மூடிய சுருள் பிரேஸ்களுக்குள் பிணைக்கிறது. மறுபுறம், மேக்ரோவுக்கு எந்தவொரு முடித்தல் சின்னமும் இல்லை, எனவே மேக்ரோவில் ஒரு அறிக்கைகள் அதிகமாக இருக்கும்போது பிணைப்பு கடினமாகிறது.

முடிவுகளை:

மேக்ரோ செயல்பாட்டை விட இன்லைன் செயல்பாடுகள் மிகவும் உறுதியானவை. சி ++ ஒரு மாறிலியை வரையறுக்க சிறந்த வழியையும் வழங்குகிறது, இது “கான்ஸ்ட்” முக்கிய சொல்லைப் பயன்படுத்துகிறது.