Obstack
சி நிரலாக்க மொழியில், ஒப்ஸ்டாக் என்பது சி நிலையான நூலகத்திற்கான நினைவக மேலாண்மை குனு நீட்டிப்பாகும். ஒரு "தடை" என்பது "பொருள்களின்" (தரவு உருப்படிகள்) ஒரு "அடுக்கு" ஆகும், இது மாறும் வகையில் நிர்வகிக்கப்படுகிறது. இது பிராந்திய அடிப்படையிலான நினைவக மேலாண்மை திட்டத்தை செயல்படுத்துகிறது. ஆப்ஸ்டாக் குறியீடு பொதுவாக சி மேக்ரோக்களை வழங்குகிறது, இது பயனருக்கான நினைவக ஒதுக்கீடு மற்றும் நிர்வாகத்தை கவனித்துக்கொள்கிறது. அடிப்படையில், தடைகள் நினைவக மேலாண்மையின் ஒரு வடிவமாக பயன்படுத்தப்படுகின்றன, இது பல சூழ்நிலைகளில் மல்லோக்/ஃப்ரீ விட மிகவும் திறமையானதாகவும் செயல்படுத்த கடினமாகவும் இருக்கும். எடுத்துக்காட்டாக, தரவு உருப்படிகளைக் கையாள ஒரு அடுக்கை அமைக்க வேண்டும் என்று வைத்துக்கொள்வோம், அதன் எண்ணிக்கை சிறிது நேரம் வளர்ந்து பின்னர் ஒரு இறுதி வடிவத்தை அடைய வேண்டும்; அத்தகைய அடுக்கை obstack.h இல் வரையறுக்கலாம். ஒதுக்கப்பட்ட பொருள்களை விடுவிப்பது பொருளை ஒரு புதிய நினைவக பகுதி ஒதுக்கப்பட்டவுடன் அதன் பயன்பாட்டிற்குப் பிறகு அதை விடுவிப்பது அவசியம். செயல்பாடுகள் மற்றும் மேக்ரோக்கள் இடையூறுகளைப் பயன்படுத்துவதற்கான இடைமுகங்கள் தொகுப்பாளரைப் பொறுத்து செயல்பாடுகள் அல்லது மேக்ரோக்கள் என வரையறுக்கப்படலாம். ஒப்ஸ்டாக் வசதி அனைத்து சி கம்பைலர்களுடனும் வேலை செய்கிறது. ஒரு பழைய பாணியிலான ஐ. எஸ். ஓ அல்லாத சி தொகுப்பில், அனைத்து ஒப்ஸ்டாக் செயல்பாடுகளும் உண்மையில் மேக்ரோக்கள் என்று மட்டுமே வரையறுக்கப்படுகின்றன. செயல்பாடுகள் போன்ற இந்த மேக்ரோக்களை நீங்கள் அழைக்கலாம், ஆனால் அவற்றை வேறு எந்த வகையிலும் பயன்படுத்த முடியாது. உதாரணமாக, நீங்கள் அவர்களின் முகவரியை எடுக்க முடியாது. மேக்ரோக்களை அழைப்பதற்கு ஒரு சிறப்பு முன்னெச்சரிக்கை தேவைப்படுகிறதுஃ அதாவது, முதல் ஆபரேண்ட் (ஒப்ஸ்டாக் சுட்டிக்காட்டி) எந்த பக்க விளைவுகளையும் கொண்டிருக்கக்கூடாது, ஏனெனில் இது ஒன்றுக்கு மேற்பட்ட முறை கணக்கிடப்படலாம். ஐஎஸ்ஓ சி இல், ஒவ்வொரு ஒப்ஸ்டாக் செயல்பாடும் ஒரு மேக்ரோ வரையறை மற்றும் ஒரு செயல்பாட்டு வரையறை ஆகிய இரண்டையும் கொண்டுள்ளது. மேக்ரோ மாற்று தோல்வியுற்றால் செயல்பாட்டு வரையறை பயன்படுத்தப்படுகிறது. ஒரு சாதாரண அழைப்பு முன்னிருப்பாக மேக்ரோ வரையறையைப் பயன்படுத்துகிறது, ஆனால் இங்கே காட்டப்பட்டுள்ளபடி, செயல்பாட்டின் பெயரை அடைப்புக்குறிக்குள் எழுதுவதன் மூலம் செயல்பாட்டு வரையறையைக் கோரலாம்ஃ சரம் * x; வெற்றிட * (* ஃபன்சிபி) (); x = ஒப்டாக் _ அலோக் (ஒப்டிஆர், அளவு);/* மேக்ரோவைப் பயன்படுத்தவும். */x = (ஒப்டாக் _ அலோக்) (ஒப்டர், அளவு);/* செயல்பாட்டை அழைக்கவும். */ஃபன்சிபி = ஒப்டாக் _ அலோக்;/* செயல்பாட்டின் முகவரியை எடுத்துக் கொள்ளுங்கள். */நிலையான நூலக செயல்பாடுகளுக்கு ஐ. எஸ். ஓ. சி. யில் இருக்கும் அதே நிலைமை இது. வளரும் பொருள்கள் ஒரு தடையில் உள்ள நினைவக துண்டுகள் தொடர்ச்சியாகப் பயன்படுத்தப்படுவதால், அதன் முடிவில் அளவு 'பைட்டுகள்' தரவைச் சேர்ப்பதன் மூலம் ஒரு பொருளை உருவாக்க முடியும். ஒரு பொருளை படிப்படியாக கட்டியெழுப்பும் இந்த நுட்பம் 'ஒரு பொருளை வளர்ப்பது' என்று அழைக்கப்படுகிறது. குறிப்புகள் வெளிப்புற இணைப்புகள் தடைகள்-குனு சி நூலகம் சுருக்க தரவு வகைகள் குனு திட்டம்