Obstack
સી પ્રોગ્રામિંગ ભાષામાં, ઓબ્સ્ટેક એ સી સ્ટાન્ડર્ડ લાઇબ્રેરીનું મેમરી-મેનેજમેન્ટ જીએનયુ એક્સ્ટેંશન છે. "ઓબ્સ્ટેક" એ "ઓબ્જેક્ટ્સ" (ડેટા આઇટમ્સ) નો "સ્ટેક" છે જે ગતિશીલ રીતે સંચાલિત થાય છે. તે પ્રદેશ આધારિત સ્મૃતિ વ્યવસ્થાપન યોજનાનો અમલ કરે છે. ઓબ્સ્ટેક કોડ સામાન્ય રીતે સી મેક્રો પ્રદાન કરે છે જે વપરાશકર્તા માટે મેમરી ફાળવણી અને વ્યવસ્થાપનનું ધ્યાન રાખે છે. મૂળભૂત રીતે, અવરોધોનો ઉપયોગ મેમરી મેનેજમેન્ટના એક સ્વરૂપ તરીકે થાય છે જે ઘણી પરિસ્થિતિઓમાં મેલોક/ફ્રી કરતાં વધુ કાર્યક્ષમ અને અમલમાં મૂકવા માટે ઓછું મુશ્કેલ હોઈ શકે છે. ઉદાહરણ તરીકે, કહો કે કોઈએ ડેટા વસ્તુઓને સંભાળવા માટે એક સ્ટેક સેટ કરવાની જરૂર છે જેની સંખ્યા થોડા સમય માટે વધે છે અને પછી અંતિમ સ્વરૂપમાં પહોંચે છે; આવા સ્ટેકને obstack.h માં વ્યાખ્યાયિત કરી શકાય છે. ફાળવેલ પદાર્થોને મુક્ત કરી રહ્યા છે એકવાર પદાર્થને અવરોધમાં મેમરીનો નવો ભાગ ફાળવવામાં આવે તે પછી તેનો ઉપયોગ કર્યા પછી તેને મુક્ત કરવો આવશ્યક છે. કાર્યો અને મેક્રોઝ અવરોધો વાપરવા માટેના ઇન્ટરફેસોને કમ્પાઇલરના આધારે કાર્યો તરીકે અથવા મેક્રો તરીકે વ્યાખ્યાયિત કરી શકાય છે. અવરોધ સુવિધા તમામ સી કમ્પાઇલર્સ સાથે કામ કરે છે. જૂના જમાનાના બિન-આઇએસઓ સી કમ્પાઇલરમાં, તમામ અવરોધ કાર્યોને વાસ્તવમાં માત્ર મેક્રો તરીકે વ્યાખ્યાયિત કરવામાં આવે છે. તમે આ મેક્રો જેવા કાર્યોને કૉલ કરી શકો છો, પરંતુ તમે તેનો અન્ય કોઈ રીતે ઉપયોગ કરી શકતા નથી. ઉદાહરણ તરીકે, તમે તેમનું સરનામું ન લઈ શકો. મેક્રો કૉલ કરવા માટે વિશેષ સાવચેતીની જરૂર છેઃ એટલે કે, પ્રથમ ઓપરેન્ડ (ઓબ્સ્ટેક પોઇન્ટર) માં કોઈ આડઅસર ન હોવી જોઈએ, કારણ કે તેની ગણતરી એકથી વધુ વખત થઈ શકે છે. આઇએસઓ સીમાં, દરેક અવરોધ કાર્યમાં મેક્રો વ્યાખ્યા અને કાર્ય વ્યાખ્યા બંને હોય છે. જો મેક્રો અવેજી નિષ્ફળ જાય તો કાર્ય વ્યાખ્યાનો ઉપયોગ થાય છે. સામાન્ય કોલ મૂળભૂત રીતે મેક્રો વ્યાખ્યાનો ઉપયોગ કરે છે, પરંતુ તમે અહીં બતાવ્યા પ્રમાણે કૌંસમાં કાર્યનું નામ લખીને તેના બદલે કાર્ય વ્યાખ્યાની વિનંતી કરી શકો છોઃ ચાર * x; રદબાતલ * (* ફનસીપી) (); x = ઓબ્સ્ટેક _ એલોકો (ઓબીપીટીઆર, કદ);/* મેક્રોનો ઉપયોગ કરો. */x = (ઓબ્સ્ટેક _ એલોકો) (ઓબીપીટીઆર, કદ);/* કાર્યને કૉલ કરો. */ફંક્શનસીપી = ઓબ્સ્ટેક _ એલોકો;/* કાર્યનું સરનામું લો. */આ એ જ સ્થિતિ છે જે પ્રમાણભૂત પુસ્તકાલય કાર્યો માટે ISO C માં અસ્તિત્વમાં છે. વધતી જતી વસ્તુઓ અવરોધમાં મેમરી હિસ્સાનો ક્રમિક રીતે ઉપયોગ થતો હોવાથી, તેના અંતે કદ 'બાઇટ્સ' નો ડેટા ઉમેરીને ઑબ્જેક્ટનું નિર્માણ કરવું શક્ય છે. કોઈ વસ્તુનું તબક્કાવાર નિર્માણ કરવાની આ તકનીકને 'વસ્તુને વિકસાવવી' કહેવામાં આવે છે. સંદર્ભો બાહ્ય કડીઓ અવરોધો-જીએનયુ સી લાઇબ્રેરી એબ્સ્ટ્રેક્ટ ડેટા પ્રકારો જીએનયુ પ્રોજેક્ટ