GNU coding standards
குனு குறியீட்டு தரநிலைகள் என்பது குனு அமைப்பிற்குள் தொடர்ந்து செயல்படும் நிரல்களை எழுதுவதற்கான விதிகள் மற்றும் வழிகாட்டுதல்களின் தொகுப்பாகும். குனு குறியீட்டு தரநிலைகள் ரிச்சர்ட் ஸ்டால்மேன் மற்றும் பிற குனு திட்ட தன்னார்வலர்களால் எழுதப்பட்டன. தரநிலைகள் ஆவணம் குனு திட்டத்தின் ஒரு பகுதியாகும் மற்றும் குனு வலைத்தளத்திலிருந்து கிடைக்கிறது. இது சி இல் குனுவுக்கான இலவச மென்பொருளை எழுதுவதில் கவனம் செலுத்துகிறது என்றாலும், அதன் பெரும்பகுதியை பொதுவாகப் பயன்படுத்தலாம். குறிப்பாக, குனு திட்டம் அதன் பங்களிப்பாளர்களை எப்போதும் தரங்களைப் பின்பற்ற முயற்சிக்க ஊக்குவிக்கிறது-அவர்களின் நிரல்கள் சி குறியீடு வடிவமைப்பில் செயல்படுத்தப்பட்டாலும் இல்லாவிட்டாலும் குனு குறியீட்டு தரநிலைகள் பெரும்பாலான சி நிரலாக்க மொழி கட்டமைப்புகளை எவ்வாறு வடிவமைப்பது என்பதைக் குறிப்பிடுகின்றன. இங்கே ஒரு சிறப்பியல்பு எடுத்துக்காட்டுஃ இன்ட் மெயின் (இன்ட் ஆர்க், சார் * ஆர்க்வி []) {கட்டமைக்கப்பட்ட கிச்மோ ஃபூ; fetch _ gizmo (& ஃபூ, ஆர்க்வி [1]); சரிபார்க்கவும்ஃ என்றால் (foo.type = = மூமின்) வைக்கிறது ("இது ஒரு மூமின். "); இல்லையெனில் (foo.bar <GIZMO _ SNUFKIN _ ThRESHOLD/2 | | (எஸ்டிஆர்சிஎம்பி (foo.class_name", ஸ்னுஃப்கின் ") = = 0) & & foo.bar <GIZMO _ SNUFKIN _ ThRESHOLD) (" இது ஒரு ஸ்னுஃப்கின். "); இல்லையெனில் கோப்பு பெயரில் கடைசி வெட்டுக்குப் பிறகு முதல் எழுத்துக்கு சுட்டிக்காட்டு. */இன்ட் வில்மா;/* பிரபஞ்சத்தின் தோராயமான அளவு. */int fred;/* 'பட்டை' புலத்தின் அதிகபட்ச மதிப்பு. */(foo.bar = GIZMO _ SNUFKIN _ TRESHOLD); சேமிப்பு அளவு (வில்மா); கோட்டோ சரிபார்ப்பு (ரிட்டர்ன் 0)) தொகுதிகளை அறிக்கைகளாக சீராகக் கையாள்வது (இன்டென்டேஷன் நோக்கத்திற்காக) குனு சி குறியீடு வடிவமைக்கும் பாணியின் மிகவும் தனித்துவமான அம்சமாகும்; அடைப்புக்குறிக்கு முன் கட்டாய இடத்தைப் போலவே. குனு பாணியில் வடிவமைக்கப்பட்ட அனைத்து குறியீடுகளும் ஒவ்வொரு மூடும் பிரேஸ், அடைப்புக்குறி அல்லது அடைப்புக்குறிப்பு அதன் தொடர்புடைய தொடக்க வரையறையின் வலதுபுறத்தில் அல்லது அதே நெடுவரிசையில் தோன்றும் பண்பைக் கொண்டுள்ளன. ஒரு பொதுவான கொள்கையாக, குனு ஈமாக்ஸ் குனு குறியீடு வடிவமைக்கும் பாணியில் நம்பகமான அதிகாரமாகக் கருதப்படலாம். எனவே, ஈமாக்ஸால் இன்டென்ட் செய்யப்படும்போது அசிங்கமாகத் தோன்றும் எந்தவொரு குறியீடும் ஈமாக்ஸ்-நட்பு வடிவமாக மாற்றப்படுவது விரும்பத்தக்கது-எடுத்துக்காட்டாக, கூடுதல் அடைப்புக்குறிகளை செருகுவதன் மூலம். நீண்ட கோடுகளைப் பிரித்தல் "நீங்கள் ஒரு வெளிப்பாட்டை பல வரிகளாகப் பிரிக்கும்போது, அதை ஒரு ஆபரேட்டருக்கு முன் பிரிக்கவும், ஒன்றுக்குப் பிறகு அல்ல". எடுத்துக்காட்டாகஃ என்றால் (ஃபூ _ திஸ் _ லாங் & & பார்> வின் (x, y, z) & & மீதமுள்ள நிபந்தனைகள்) கருத்துகள் தரநிலைகள் ஆங்கில மொழி கருத்துகளின் முக்கியத்துவத்தை பெரிதும் வலியுறுத்துகின்றனஃ தயவுசெய்து ஒரு குனு நிரலில் கருத்துகளை ஆங்கிலத்தில் எழுதுங்கள், ஏனெனில் அனைத்து நாடுகளிலும் உள்ள அனைத்து புரோகிராமர்களும் படிக்கக்கூடிய ஒரே மொழி ஆங்கிலம். நீங்கள் ஆங்கிலத்தில் சரியாக எழுதவில்லை என்றால், உங்களால் முடிந்தவரை ஆங்கிலத்தில் கருத்துகளை எழுதுங்கள், பின்னர் அவற்றை மீண்டும் எழுத உதவுமாறு மற்றவர்களைக் கேளுங்கள். உங்களால் ஆங்கிலத்தில் கருத்துகளை எழுத முடியாவிட்டால், உங்களுடன் பணியாற்ற யாரையாவது கண்டுபிடித்து உங்கள் கருத்துக்களை ஆங்கிலத்தில் மொழிபெயர்க்கவும். கருத்துகள் முழுமையான, பெரிய வாக்கியங்களைக் கொண்டிருக்க வேண்டும், ஒவ்வொன்றும் இரண்டு இடைவெளிகளைத் தொடர்ந்து இருக்க வேண்டும் (இதனால் ஒரு வாக்கியம் முடிவடைகிறது, அடுத்தது தொடங்குகிறது என்பதை ஈமாக்ஸ் சொல்ல முடியும்). நீண்ட அல்லது சிக்கலான முன் செயலி நிபந்தனைகளுக்கு, ஒவ்வொரு #else மற்றும் #endif கீழேயுள்ள குறியீட்டிற்கான நிபந்தனையை (#else க்கு) அல்லது அதற்கு மேல் (#endif க்கு) விளக்கும் ஒரு கருத்தை கொண்டிருக்க வேண்டும். கோப்புகள் தரநிலைகள் அனைத்து நிரல்களும்/usr மற்றும்/போன்றவை படிக்க மட்டுமே பொருத்தப்படும்போது செயல்பட முடியும் என்று தேவைப்படுகிறது. எனவே, உள் நோக்கங்களுக்காக மாற்றியமைக்கப்பட்ட கோப்புகள் (பதிவு கோப்புகள், பூட்டு கோப்புகள், தற்காலிக கோப்புகள் போன்றவை) / usr அல்லது/முதலியவற்றில் சேமிக்கப்படக்கூடாது. கணினி உள்ளமைவு கோப்புகளை/முதலியவற்றில் புதுப்பிப்பதே அதன் வேலை நிரல்களுக்கு ஒரு விதிவிலக்கு செய்யப்படுகிறது. அதே கோப்பகத்தில் ஒரு கோப்பை மாற்றியமைக்குமாறு பயனர் வெளிப்படையாகக் கேட்டால், கோப்புக்களை கோப்பகத்தில் சேமிப்பதற்கு மற்றொரு விதிவிலக்கு செய்யப்படுகிறது. குனு குறியீட்டு தரநிலைகள் பெயர்வுத்திறனின் சிக்கலை இந்த வழியில் வரையறுக்கின்றனஃ யுனிக்ஸ் உலகில் பெயர்வுத்திறன் என்றால் 'யுனிக்ஸ்களுக்கு இடையில்'; ஒரு குனு நிரலில் இந்த வகையான பெயர்வுத்திறன் விரும்பத்தக்கது, ஆனால் மிக முக்கியமானது அல்ல. தரநிலையின்படி, குனு நிரல்கள் குனு சி கம்பைலர் என்ற ஒரு தொகுப்பாளருடன் தொகுக்கப்படும் வகையில் வடிவமைக்கப்பட்டுள்ளதால் பெயர்வுத்திறன் சிக்கல்கள் மிகவும் குறைவாகவே உள்ளன, மேலும் குனு அமைப்பு என்ற ஒரு அமைப்பில் மட்டுமே இயங்குகின்றன. இருப்பினும் பெயர்வுத்திறன் சிக்கலின் ஒரு வடிவம் உள்ளது, மேலும் ஒரு நிரல் வெவ்வேறு CPU வகைகளில் இயங்க வேண்டும் என்பதை தரநிலை தெளிவுபடுத்துகிறது. குனு 16-பிட் அமைப்புகளை ஆதரிக்காது அல்லது ஆதரிக்காது என்று தரநிலை கூறுகிறது, ஆனால் அனைத்து வெவ்வேறு 32-பிட் மற்றும் 64-பிட் அமைப்புகளையும் கையாளுவது முற்றிலும் அவசியம். விமர்சனம் குனு குறியீட்டு தரநிலைகள் முதன்மையாக குனு திட்டங்களால் பயன்படுத்தப்படுகின்றன, இருப்பினும் அதன் பயன்பாடு குனு திட்டங்களுக்கு மட்டும் மட்டுப்படுத்தப்படவில்லை. லினக்ஸ் கர்னல் கர்னல் குறியீட்டிற்கான இந்த பாணியை கடுமையாக ஊக்கப்படுத்துகிறது, மேலும் பாணியை இழிவாகக் குறிக்கிறதுஃ "முதலில், குனு குறியீட்டு தரநிலைகளின் நகலை அச்சிட பரிந்துரைக்கிறேன், அதைப் படிக்க வேண்டாம். அவற்றை எரிக்கவும், இது ஒரு சிறந்த குறியீட்டு சைகை. ஸ்டீவ் மெக்கானெல், கோட் கம்ப்லீட் என்ற தனது புத்தகத்தில், இந்த பாணியைப் பயன்படுத்துவதற்கு எதிராக அறிவுறுத்துகிறார்; அவர் ஒரு குறியீடு மாதிரியைக் குறிக்கிறார், இது ஒரு "குறியீட்டு திகில்" ஐகானுடன் பயன்படுத்துகிறது, இது குறிப்பாக ஆபத்தான குறியீட்டைக் குறிக்கிறது, மேலும் இது பிரேஸ்களுக்கு கூடுதல் அளவிலான இன்டென்டேஷன் தேவைப்படுவதன் மூலம் வாசிப்புத்திறனைத் தடுக்கிறது என்று கூறுகிறது. மேலும் காண்க ஜினிட்ஸ் தரநிலைகள் குறிப்புகள் வெளிப்புற இணைப்புகள் ஜி. என். யூ வலைத்தளத்தில் உள்ள ஜி. என். யூ குறியீட்டு தரநிலைகள் குனு குறியீட்டு தரநிலைகளுக்கான எக்லிப்ஸ் குறியீடு பாணி வடிவமைப்பு இலவச மென்பொருள் கலாச்சாரம் மற்றும் ஆவணங்கள் குறியீட்டு தரநிலைகள் மூல குறியீடு கட்டுரைகள் எடுத்துக்காட்டாக சி குறியீடு