GNU coding standards
જીએનયુ કોડિંગ ધોરણો એ પ્રોગ્રામ્સ લખવા માટેના નિયમો અને માર્ગદર્શિકાઓનો સમૂહ છે જે જીએનયુ સિસ્ટમમાં સતત કામ કરે છે. જીએનયુ કોડિંગ સ્ટાન્ડર્ડ્સ રિચાર્ડ સ્ટોલમેન અને અન્ય જીએનયુ પ્રોજેક્ટ સ્વયંસેવકો દ્વારા લખવામાં આવ્યા હતા. ધોરણો દસ્તાવેજ જીએનયુ પ્રોજેક્ટનો એક ભાગ છે અને જીએનયુ વેબસાઇટ પરથી ઉપલબ્ધ છે. જો કે તે સીમાં જીએનયુ માટે મફત સોફ્ટવેર લખવા પર ધ્યાન કેન્દ્રિત કરે છે, તેમાંના મોટા ભાગનાને વધુ સામાન્ય રીતે લાગુ કરી શકાય છે. ખાસ કરીને, જી. એન. યુ. પ્રોજેક્ટ તેના ફાળો આપનારાઓને હંમેશા ધોરણોનું પાલન કરવાનો પ્રયાસ કરવા પ્રોત્સાહિત કરે છે-ભલે તેમના કાર્યક્રમો સી. કોડ ફોર્મેટિંગમાં લાગુ કરવામાં આવે કે નહીં. જી. એન. યુ. કોડિંગ ધોરણો સ્પષ્ટ કરે છે કે મોટાભાગના સી પ્રોગ્રામિંગ લેંગ્વેજ કન્સ્ટ્રક્ટ્સને કેવી રીતે ફોર્મેટ કરવું. અહીં એક લાક્ષણિક ઉદાહરણ છેઃ પૂર્ણાંક મુખ્ય (પૂર્ણાંક આરજીસી, ચાર * આરજીવી []) {માળખું ગિઝમો ફૂ; fetch _ gizmo (& ફૂ, આરજીવી [1]); તપાસોઃ જો (foo.type = = એમઓઓએમઆઈએન) મૂકે છે ("તે એક મોમીન છે. "); અન્યથા જો (foo.bar <GIZMO _ SNUFKIN _ ThRESHOLD/2 | | (strcmp (foo.class_name", snufkin ") = = 0) & & foo.bar <GIZMO _ SNUFKIN _ ThRESHOLD) મૂકે (" તે એક સ્નૂફકિન છે. "); અન્યથા {ચાર * બાર્ની;/* ફાઇલના નામમાં છેલ્લા સ્લેશ પછી પ્રથમ અક્ષર તરફ નિર્દેશ કરો. */ઇન્ટ વિલ્મા;/* બ્રહ્માંડનું અંદાજે કદ. */int fred;/* 'બાર' ક્ષેત્રનું મહત્તમ મૂલ્ય. */(foo.bar = GIZMO _ SNUFKIN _ TRESHOLD); ભંડાર _ કદ (વિલ્મા); ગોટો ચેક; રીટર્ન 0;} નિવેદનો તરીકે બ્લોકની સુસંગત સારવાર (ઇન્ડેન્ટેશનના હેતુ માટે) એ જીએનયુ સી કોડ ફોર્મેટિંગ શૈલીનું એક ખૂબ જ વિશિષ્ટ લક્ષણ છે; જેમ કે કૌંસ પહેલાં ફરજિયાત જગ્યા છે. જીએનયુ શૈલીમાં ફોર્મેટ કરેલા તમામ કોડમાં એ ગુણધર્મ હોય છે કે દરેક ક્લોઝિંગ બ્રેસ, કૌંસ અથવા કૌંસ તેના અનુરૂપ ઓપનિંગ સીમાંકનની જમણી બાજુએ અથવા તે જ સ્તંભમાં દેખાય છે. સામાન્ય સિદ્ધાંત તરીકે, જીએનયુ ઈમેક્સને જીએનયુ કોડ ફોર્મેટિંગ શૈલી પર વિશ્વસનીય સત્તા ગણી શકાય. જેમ કે, તે ઇચ્છનીય છે કે કોડનો કોઈપણ ટુકડો જે ઈમેક્સ દ્વારા ઇન્ડેન્ટ કરવામાં આવે ત્યારે કદરૂપું લાગે છે તેને વધુ ઈમેક્સ-મૈત્રીપૂર્ણ સ્વરૂપમાં બદલવામાં આવે-ઉદાહરણ તરીકે, વધારાના કૌંસ દાખલ કરીને. લાંબી રેખાઓ વિભાજિત કરવી "જ્યારે તમે અભિવ્યક્તિને બહુવિધ રેખાઓમાં વિભાજીત કરો છો, ત્યારે તેને ઓપરેટરની સામે વિભાજીત કરો, એક પછી નહીં". ઉદાહરણ તરીકેઃ જો (foo _ this _ is _ long & & બાર> વિન (x, y, z) અને બાકીની સ્થિતિ) ટિપ્પણીઓ ધોરણો અંગ્રેજી ભાષાની ટિપ્પણીઓના મહત્વ પર મોટા પ્રમાણમાં ભાર મૂકે છેઃ મહેરબાની કરીને અંગ્રેજીમાં જીએનયુ પ્રોગ્રામમાં ટિપ્પણીઓ લખો, કારણ કે અંગ્રેજી એ એક એવી ભાષા છે જે તમામ દેશોમાં લગભગ તમામ પ્રોગ્રામરો વાંચી શકે છે. જો તમે સારી રીતે અંગ્રેજી નથી લખતા, તો કૃપા કરીને શક્ય હોય તેટલી અંગ્રેજીમાં ટિપ્પણીઓ લખો, પછી અન્ય લોકોને તેમને ફરીથી લખવામાં મદદ કરવા માટે કહો. જો તમે અંગ્રેજીમાં ટિપ્પણીઓ લખી શકતા નથી, તો કૃપા કરીને તમારી સાથે કામ કરવા માટે કોઈને શોધો અને તમારી ટિપ્પણીઓને અંગ્રેજીમાં અનુવાદિત કરો. ટિપ્પણીઓમાં સંપૂર્ણ, કેપિટલાઇઝ્ડ વાક્યો હોવા જોઈએ, દરેક પછી બે જગ્યાઓ હોવી જોઈએ (જેથી ઇમૅક્સ કહી શકે કે એક વાક્ય ક્યાં સમાપ્ત થાય છે અને બીજું ક્યાંથી શરૂ થાય છે). લાંબા અથવા જટિલ પ્રીપ્રોસેસર શરતો માટે, દરેક #else અને #endif પાસે નીચે (#else માટે) અથવા ઉપર (#endif માટે) કોડ માટેની શરત સમજાવતી ટિપ્પણી હોવી જોઈએ. ફાઇલો ધોરણો માટે જરૂરી છે કે જ્યારે/યુ. એસ. આર. અને/વગેરે ફક્ત વાંચવા માટે માઉન્ટ થયેલ હોય ત્યારે તમામ પ્રોગ્રામ્સ કામ કરી શકે. તેથી, આંતરિક હેતુઓ માટે સુધારેલી ફાઇલો (લોગ ફાઇલો, લોક ફાઇલો, કામચલાઉ ફાઇલો, વગેરે) તેને/યુ. એસ. આર. અથવા/વગેરેમાં સંગ્રહિત ન કરવું જોઈએ. એક અપવાદ એવા પ્રોગ્રામ્સ માટે બનાવવામાં આવ્યો છે જેનું કામ/વગેરેમાં સિસ્ટમ રૂપરેખાંકન ફાઇલોને અપડેટ કરવાનું છે. ડિરેક્ટરીમાં ફાઇલો સંગ્રહિત કરવા માટે બીજો અપવાદ બનાવવામાં આવે છે જ્યારે વપરાશકર્તાએ સ્પષ્ટ રીતે તે જ ડિરેક્ટરીમાં ફાઇલમાં ફેરફાર કરવાનું કહ્યું હોય. પોર્ટેબિલિટી જીએનયુ કોડિંગ સ્ટાન્ડર્ડ્સ પોર્ટેબિલિટીના મુદ્દાને આ રીતે વ્યાખ્યાયિત કરે છેઃ યુનિક્સ વિશ્વમાં પોર્ટેબિલિટીનો અર્થ 'યુનિક્સ વચ્ચે' થાય છે; જીએનયુ પ્રોગ્રામમાં આ પ્રકારની પોર્ટેબિલિટી ઇચ્છનીય છે, પરંતુ મહત્વપૂર્ણ નથી. ધોરણ મુજબ, પોર્ટેબિલિટી સમસ્યાઓ ખૂબ જ મર્યાદિત છે કારણ કે જીએનયુ પ્રોગ્રામ્સ એક કમ્પાઇલર, જીએનયુ સી કમ્પાઇલર સાથે સંકલિત કરવા માટે રચાયેલ છે અને માત્ર એક જ સિસ્ટમ પર ચાલે છે, જે જીએનયુ સિસ્ટમ છે. જોકે પોર્ટેબિલિટી સમસ્યાનું એક સ્વરૂપ છે, અને તે હકીકત એ છે કે પ્રમાણભૂત તે સ્પષ્ટ કરે છે કે પ્રોગ્રામ વિવિધ CPU પ્રકારો પર ચાલવો જોઈએ. ધોરણ કહે છે કે જીએનયુ 16-બીટ પ્રણાલીઓને ટેકો આપતું નથી અને આપશે નહીં, પરંતુ તમામ વિવિધ 32-અને 64-બીટ પ્રણાલીઓનું સંચાલન કરવું એકદમ જરૂરી છે. ટીકા જીએનયુ કોડિંગ ધોરણોનો ઉપયોગ મુખ્યત્વે જીએનયુ પ્રોજેક્ટ્સ દ્વારા થાય છે, જોકે તેનો ઉપયોગ માત્ર જીએનયુ પ્રોજેક્ટ્સ સુધી મર્યાદિત નથી. લિનક્સ કર્નલ કર્નલ કોડ માટે આ શૈલીને સખત રીતે નિરુત્સાહિત કરે છે, અને શૈલીને અપમાનજનક રીતે સંદર્ભિત કરે છેઃ "સૌ પ્રથમ, હું જીએનયુ કોડિંગ ધોરણોની નકલ છાપવાનું સૂચન કરું છું, અને તેને વાંચતો નથી. તેમને બાળી નાખો, તે એક મહાન પ્રતીકાત્મક હાવભાવ છે. સ્ટીવ મેકકોનેલ, તેમના પુસ્તક કોડ કમ્પ્લીટમાં, આ શૈલીનો ઉપયોગ ન કરવાની પણ સલાહ આપે છે; તેઓ એક કોડ નમૂનાને ચિહ્નિત કરે છે જે તેનો ઉપયોગ "કોડિંગ હોરર" ચિહ્ન સાથે કરે છે, જે ખાસ કરીને ખતરનાક કોડનું પ્રતીક છે, અને જણાવે છે કે તે કૌંસ માટે વધારાના સ્તરના ઇન્ડેન્ટેશનની જરૂર પડવાથી વાંચનીયતામાં અવરોધ લાવે છે. આ પણ જુઓ જીનીટ્સ ધોરણો સંદર્ભો બાહ્ય કડીઓ જીએનયુ વેબસાઇટ પર જીએનયુ કોડિંગ ધોરણો જીએનયુ કોડિંગ ધોરણો માટે ઇક્લિપ્સ કોડ સ્ટાઇલ ફોર્મેટર મફત સોફ્ટવેર સંસ્કૃતિ અને દસ્તાવેજો કોડિંગ ધોરણો સ્રોત કોડ ઉદાહરણ સી કોડ સાથેના લેખો