Precompiled header
கணினி நிரலாக்கத்தில், முன்கூட்டியே தொகுக்கப்பட்ட தலைப்பு (பிசிஹெச்) என்பது ஒரு (சி அல்லது சி + +) தலைப்பு கோப்பாகும், இது ஒரு இடைநிலை வடிவத்தில் தொகுக்கப்படுகிறது, இது தொகுப்பாளரை விரைவாக செயலாக்குகிறது. முன்கூட்டியே தொகுக்கப்பட்ட தலைப்புகளின் பயன்பாடு தொகுப்பு நேரத்தை கணிசமாகக் குறைக்கலாம், குறிப்பாக பெரிய தலைப்பு கோப்புகள், பல தலைப்பு கோப்புகளை உள்ளடக்கிய தலைப்பு கோப்புகள் அல்லது பல மொழிபெயர்ப்பு அலகுகளில் சேர்க்கப்பட்டுள்ள தலைப்பு கோப்புகள் ஆகியவற்றில் பயன்படுத்தப்படும்போது. சி மற்றும் சி + + நிரலாக்க மொழிகளில், ஒரு தலைப்பு கோப்பு என்பது ஒரு கோப்பாகும், அதன் உரை மூல கோப்பில் ஒரு முன் செயலி வழிகாட்டியைப் பயன்படுத்துவதன் மூலம் சி முன் செயலி மூலம் மற்றொரு மூலக் கோப்பில் தானாகவே சேர்க்கப்படலாம். தலைப்பு கோப்புகள் சில நேரங்களில் மிகப் பெரிய அளவிலான மூலக் குறியீட்டைக் கொண்டிருக்கலாம் (எடுத்துக்காட்டாக, மைக்ரோசாப்ட் விண்டோஸ் மற்றும் ஓஎஸ் எக்ஸ் ஆகியவற்றில் தலைப்பு கோப்புகள் windows.h மற்றும் கோகோ/கோகோ. எச் முறையே). ஐகென் கணித நூலகம் மற்றும் பூஸ்ட் சி + + நூலகங்கள் போன்ற வார்ப்புருக்களை விரிவாகப் பயன்படுத்தும் பெரிய "தலைப்பு" நூலகங்களின் வருகையில் இது குறிப்பாக உண்மை. அவை ரன் டைமில் இணைக்கப்படுவதை விட, பயனர் #includes என்ற தலைப்புக் கோப்புகளாகவே எழுதப்படுகின்றன. எனவே, ஒவ்வொரு முறையும் பயனர் தங்கள் நிரலை தொகுக்கும்போது, பயனர் அடிப்படையில் ஏராளமான தலைப்பு நூலகங்களையும் மீண்டும் தொகுக்கிறார். (இவை "தலைப்பு" அல்லாத நூலகங்களில் பகிரப்பட்ட பொருள்கள் அல்லது மாறும் இணைப்பு நூலகங்களாக முன்கூட்டியே தொகுக்கப்படும்.) தொகுப்பு நேரங்களைக் குறைக்க, சில தொகுப்பான்கள் தொகுப்பாளர் செயலாக்குவதற்கு விரைவாக ஒரு வடிவத்தில் தலைப்பு கோப்புகளை தொகுக்க அனுமதிக்கின்றன. இந்த இடைநிலை வடிவம் முன்கூட்டியே தொகுக்கப்பட்ட தலைப்பு என்று அழைக்கப்படுகிறது, மேலும் இது பொதுவாக. pch என்ற நீட்டிப்புடன் பெயரிடப்பட்ட கோப்பில் அல்லது குனு தொகுப்பு சேகரிப்பின் கீழ். gch போன்ற ஒத்த கோப்பில் வைக்கப்படுகிறது. பயன்பாடு எடுத்துக்காட்டாக, கொடுக்கப்பட்ட ஒரு C + + கோப்பு source.cpp இதில் header.hpp:// header.hpp.// source.cpp #include "header.hpp" அடங்கும். முன்கூட்டியே தொகுக்கப்பட்ட தலைப்பு அம்சத்தை இயக்கி முதல் முறையாக source.cpp ஐ தொகுக்கும்போது, தொகுப்பாளர் முன்கூட்டியே தொகுக்கப்பட்ட தலைப்பு, header.pch ஐ உருவாக்கும். அடுத்த முறை, இந்த தலைப்பின் நேர முத்திரை மாறவில்லை என்றால், தொகுப்பாளர் header.hpp தொடர்பான தொகுப்பு கட்டத்தைத் தவிர்த்து, அதற்கு பதிலாக header.pch ஐ நேரடியாகப் பயன்படுத்தலாம். பொதுவான செயல்பாடுகள் மைக்ரோசாப்ட் விஷுவல் சி மற்றும் சி + + மைக்ரோசாப்ட் விஷுவல் சி + + (பதிப்பு 6 மற்றும் புதியது) தலைப்புகள் மட்டுமல்ல, எந்த குறியீட்டையும் முன்கூட்டியே தொகுக்க முடியும். இதை இரண்டு வழிகளில் செய்யலாம்ஃ ஒன்று/Ycfilename விருப்பத்துடன் பொருந்தக்கூடிய ஒரு கோப்பு வரை அனைத்து குறியீட்டையும் முன்கூட்டியே தொகுத்தல் அல்லது (எந்த கோப்பு பெயரும் இல்லாமல்/Yc குறிப்பிடப்படும் போது) குறியீட்டில் #pragma hdrstop இன் முதல் நிகழ்வு வரை அனைத்து குறியீட்டையும் முன்கூட்டியே தொகுத்தல் முன்கூட்டியே தொகுக்கப்பட்ட வெளியீடு/Yc விருப்பத்திற்கு கொடுக்கப்பட்ட கோப்பு பெயரின் பெயரில் ஒரு கோப்பில் சேமிக்கப்படுகிறது, ஒரு. pch நீட்டிப்புடன், அல்லது/Fpfilename விருப்பத்தால் வழங்கப்பட்ட பெயரின் படி பெயரிடப்பட்ட கோப்பில் சேமிக்கப்படுகிறது. / யு விருப்பம்,/ஒய். சி விருப்பத்திற்கு உட்பட்டு, ஒன்றாக பயன்படுத்தப்பட்டால், கம்பைலர் அத்தகைய கோப்பிலிருந்து ஏற்கனவே முன் தொகுக்கப்பட்ட குறியீட்டைப் பயன்படுத்துகிறது. pch.h (விஷுவல் ஸ்டுடியோ 2017 க்கு முன்பு stdafx.h என்று பெயரிடப்பட்டது) என்பது மைக்ரோசாப்ட் விஷுவல் ஸ்டுடியோ IDE வழிகாட்டியால் உருவாக்கப்பட்ட ஒரு கோப்பாகும், இது நிலையான அமைப்பு மற்றும் திட்ட குறிப்பிட்ட கோப்புகள் இரண்டையும் விவரிக்கிறது, அவை அடிக்கடி பயன்படுத்தப்படுகின்றன, ஆனால் எப்போதும் மாறுவதில்லை. stdafx.h இல் உள்ள ஏஎஃப்எக்ஸ் என்பது பயன்பாட்டு கட்டமைப்பின் நீட்டிப்புகளைக் குறிக்கிறது. ஏஎஃப்எக்ஸ் என்பது மைக்ரோசாப்ட் அறக்கட்டளை வகுப்புகளின் (எம்எஃப்சி) அசல் சுருக்கமாகும். பதிப்பு 2017 க்கு முன்னர் எம்எஸ்விசி திட்டங்களில் stdafx.h என்ற பெயர் இயல்பாகவே பயன்படுத்தப்பட்டாலும், எந்த மாற்று பெயரும் கைமுறையாக குறிப்பிடப்படலாம். ஒட்டுமொத்த தொகுப்பு நேரங்களைக் குறைக்க இணக்கமான தொகுப்பான்கள் இந்த கோப்பை முன்கூட்டியே தொகுக்கும். தொகுப்பு விருப்பம்/யூ 'pch.h' சரிபார்க்கப்படாவிட்டால் (முன்னிருப்பாக) விஷுவல் சி + + மூலக் கோப்பில் உள்ள #include "pch.h" க்கு முன் எதையும் தொகுக்காது; அந்த வரி உட்பட மூலத்தில் உள்ள அனைத்து குறியீடுகளும் ஏற்கனவே தொகுக்கப்பட்டுள்ளன என்று அது கருதுகிறது. GCC முன்கூட்டியே தொகுக்கப்பட்ட தலைப்புகள் GCC இல் ஆதரிக்கப்படுகின்றன (3.4 மற்றும் புதியவை). ஜி. சி. சி. யின் அணுகுமுறை வி. சி மற்றும் இணக்கமான தொகுப்பாளர்களைப் போன்றது. ". gch" பின்னொட்டு பயன்படுத்தி முன்கூட்டியே தொகுக்கப்பட்ட தலைப்பு கோப்புகளின் பதிப்புகளை GCC சேமிக்கிறது. ஒரு மூலக் கோப்பைத் தொகுக்கும்போது, இந்த கோப்பு அதே கோப்பகத்தில் உள்ளதா என்பதை தொகுப்பாளர் சரிபார்த்து, முடிந்தால் அதைப் பயன்படுத்துகிறார். தலைப்பு தொகுக்கப்பட்ட அதே கம்பைலர் சுவிட்சுகள் அமைக்கப்பட்டிருந்தால் மட்டுமே ஜி. சி. சி முன் தொகுக்கப்பட்ட பதிப்பைப் பயன்படுத்த முடியும், மேலும் அது அதிகபட்சமாக ஒன்றைப் பயன்படுத்தலாம். மேலும், முன்கூட்டிய செயலி அறிவுறுத்தல்கள் மட்டுமே முன்கூட்டியே தொகுக்கப்பட்ட தலைப்புக்கு முன் வைக்கப்படலாம் (ஏனென்றால் அது நேரடியாகவோ அல்லது மறைமுகமாகவோ மற்றொரு சாதாரண தலைப்பின் மூலம் சேர்க்கப்பட வேண்டும், எந்த தொகுப்பு குறியீட்டிற்கும் முன்). பெரும்பாலான தலைப்பு கோப்புகளை அவற்றின் நீட்டிப்பு மூலம் ஜி. சி. சி தானாகவே அடையாளம் காட்டுகிறது. இருப்பினும், இது தோல்வியுற்றால் (எ. கா. தரமற்ற தலைப்பு நீட்டிப்புகள் காரணமாக), ஜி. சி. சி கோப்பை ஒரு தலைப்பாகக் கருதுகிறது என்பதை உறுதிப்படுத்த-x சுவிட்சைப் பயன்படுத்தலாம். கிளாங் தொகுப்பாளர் 2009 ஆம் ஆண்டின் கிளாங் 2.5/எல். எல். வி. எம் 2.5 இல் பிசிஹெச் க்கான ஆதரவைச் சேர்த்தார். தொகுப்பாளர் உள்ளீட்டு மூலக் குறியீட்டை அடையாளப்படுத்துகிறார் மற்றும் தலைப்புகளின் சொற்பொருள் மற்றும் சொற்பொருள் பகுப்பாய்வுகளைச் செய்கிறார், தொகுப்பாளரின் உள் உருவாக்கப்பட்ட சுருக்க தொடரியல் மரம் (ஏஎஸ்டி) மற்றும் குறியீட்டு அட்டவணையை முன்கூட்டியே தொகுக்கப்பட்ட தலைப்பு கோப்பில் எழுதுகிறார். கிளாங்கின் முன்கூட்டியே தொகுக்கப்பட்ட தலைப்புத் திட்டம், ஒரு முன்கூட்டியே தொகுக்கப்பட்ட தலைப்பு மற்றொருதைக் குறிக்கும் திறன் போன்ற சில மேம்பாடுகளுடன், உள்நாட்டில் பயன்படுத்தப்படும், முன்கூட்டியே தொகுக்கப்பட்ட தலைப்பு, அதன் தொகுதிகள் பொறிமுறையின் அடிப்படையையும் உருவாக்குகிறது. இது எல். எல். வி. எம் ஆல் பயன்படுத்தப்படும் அதே பிட்கோடு கோப்பு வடிவமைப்பைப் பயன்படுத்துகிறது, இது பொதுவான பொருள் கோப்பு வடிவமைப்பு அல்லது விரிவாக்கக்கூடிய இணைக்கும் வடிவமைப்பு கோப்புகளுக்குள் கிளாங்-குறிப்பிட்ட பிரிவுகளில் இணைக்கப்பட்டுள்ளது. C + + பில்டர் இயல்புநிலை திட்ட கட்டமைப்பில், C + + பில்டர் தொகுப்பாளர் ஒரு மூல தொகுதியால் சேர்க்கப்பட்ட அனைத்து தலைப்புகளுக்கும் முன்கூட்டியே தொகுக்கப்பட்ட தலைப்புகளை உருவாக்குகிறது, வரி #pragma hdrstop காணப்படும் வரை. முடிந்தால் திட்டத்தின் அனைத்து தொகுதிகளுக்கும் முன்கூட்டியே தொகுக்கப்பட்ட தலைப்புகள் பகிரப்படுகின்றன. எடுத்துக்காட்டாக, விஷுவல் காம்போனென்ட் நூலகத்துடன் பணிபுரியும் போது, பொதுவாகப் பயன்படுத்தப்படும் பெரும்பாலான வி. சி. எல் தலைப்பு கோப்புகளைக் கொண்ட vcl.h தலைப்பை முதலில் சேர்ப்பது பொதுவானது. எனவே, முன்கூட்டியே தொகுக்கப்பட்ட தலைப்பை அனைத்து திட்ட தொகுதிகளிலும் பகிர்ந்து கொள்ளலாம், இது கட்டுமான நேரத்தை வியத்தகு முறையில் குறைக்கிறது. கூடுதலாக, விஷுவல் சி + + வழங்கிய பொறிமுறையைப் போலவே, ஒரு குறிப்பிட்ட தலைப்பு கோப்பை முன்கூட்டியே தொகுக்கப்பட்ட தலைப்பாகப் பயன்படுத்த சி + + பில்டர் கருவியாக இருக்கலாம். சி + + பில்டர் 2009 ஒரு "முன் தொகுக்கப்பட்ட தலைப்பு வழிகாட்டி" ஐ அறிமுகப்படுத்துகிறது, இது திட்டத்தின் அனைத்து மூல தொகுதிகளையும் சேர்க்கப்பட்ட தலைப்பு கோப்புகளுக்காக பகுப்பாய்வு செய்கிறது, அவற்றை வகைப்படுத்துகிறது (அதாவது. தலைப்பு கோப்புகள் திட்டத்தின் ஒரு பகுதியாக இருந்தால் அல்லது சேர்க்கப்பட்ட பாதுகாப்பு இல்லை என்றால் அவற்றை விலக்குகிறது) மேலும் குறிப்பிட்ட கோப்புகளுக்கான முன்கூட்டியே தொகுக்கப்பட்ட தலைப்பை தானாகவே உருவாக்கி சோதிக்கிறது. முன்கூட்டியே பேசப்படும் தலைப்பு (PTH) என்பது லெக்சிகல் பகுப்பாய்வு மூலம் இயக்கப்படும் ஒரு வடிவத்தில் சேமிக்கப்பட்ட ஒரு தலைப்பு கோப்பு ஆகும், ஆனால் அதில் சொற்பொருள் செயல்பாடுகள் எதுவும் செய்யப்படவில்லை. பி. சி. எச். ஐ ஆதரிப்பதற்கு முன்பு கிளாங்கில் பி. டி. எச் உள்ளது, மேலும் இது ஜி. சி. சி. யின் ஒரு கிளையிலும் முயற்சிக்கப்பட்டுள்ளது. ஒரு முழு பிசிஹெச் பொறிமுறையுடன் ஒப்பிடும்போது, பி. டி. எச் மொழி (மற்றும் பேச்சுவழக்கு) சுதந்திரத்தின் நன்மைகளைக் கொண்டுள்ளது, ஏனெனில் லெக்சிகல் பகுப்பாய்வு சி-குடும்ப மொழிகளுக்கு ஒத்திருக்கிறது, மேலும் கட்டிடக்கலை சுதந்திரம், வெவ்வேறு இலக்கு கட்டமைப்புகளுக்கு தொகுக்கும்போது டோக்கன்களின் ஒரே ஸ்ட்ரீமைப் பயன்படுத்தலாம். எவ்வாறாயினும், எளிய லெக்சிகல் பகுப்பாய்வைத் தவிர வேறு எதுவும் செல்லாததில் இது குறைபாட்டைக் கொண்டுள்ளது, ஒவ்வொரு தொகுப்பிலும் டோக்கன் ஸ்ட்ரீமின் சொற்பொருள் மற்றும் சொற்பொருள் பகுப்பாய்வு செய்யப்பட வேண்டும். கூடுதலாக, அளவீட்டை நேரியல் ரீதியாக தொகுப்பதற்கான நேரம், லெக்சிகல் டோக்கன்களில், முன்கூட்டிய கோப்பின் அளவு, இது ஒரு முழுமையான முன் தொகுப்பு பொறிமுறையின் விஷயத்தில் அவசியமில்லை (கிளங்கில் பிசிஹெச் சீரற்ற அணுகலை அனுமதிக்கிறது). கிளாங்கின் ப்ரீடோகனைசேஷன் மெக்கானிசம் முன்-ப்ராசஸருக்கு உதவுவதற்கான பல சிறிய வழிமுறைகளை உள்ளடக்கியதுஃ கோப்பு இருப்பு மற்றும் டேட்ஸ்டாம்ப் தகவல்களை கேச்சிங் செய்தல் மற்றும் சேர்ப்பு காவலர்களைப் பதிவு செய்தல், இதனால் பாதுகாக்கப்பட்ட குறியீட்டை விரைவாகத் தவிர்க்க முடியும். முன்னொட்டு தலைப்பு ஒற்றை தொகுப்பு அலகு குறிப்புகள் வெளிப்புற இணைப்புகள் முன் தொகுக்கப்பட்ட தலைப்புகளின் பராமரிப்பு மற்றும் ஊட்டுதல் ஜி. சி. சி ஃப்ராக்டல் எக்ஸ்ட்ரீம் உடன் முன் தொகுக்கப்பட்ட தலைப்புகள்ஃ முன் தொகுக்கப்பட்ட தலைப்புகள் மூலக் குறியீடு சி (நிரலாக்க மொழி) தலைப்புகள் சி + +