ઇનલાઇન અને મેક્રો વચ્ચેના તફાવત

Anonim

ઇનલાઇન વિ મેકો

C ++ આ દિવસોમાં કોમ્પ્યુટર પ્રોગ્રામિંગના ક્ષેત્રે ખૂબ દૂર છે. એક શક્તિશાળી ભાષા બનવાથી, કેટલીક વખત પ્રોગ્રામરોને તેનાં વિશાળ પુસ્તકાલયને કારણે ગૂંચવણમાં થોડોક જ તક મળે છે. ઇનલાઇન કાર્ય તેમાંથી એક છે જે ભાષામાં સરળતાથી મેક્રોઝ સાથે મૂંઝવણ કરી શકે છે.

તે નથી કે બે વચ્ચે એક નાનું તફાવત છે, પરંતુ તેઓ જે ગુણધર્મો ધરાવે છે તેના કારણે તે ગૂંચવણમાં લાગી શકે છે. આ લેખમાં, અમે C ++ માં ઇનલાઇન કાર્ય અને મેક્રોઝ વચ્ચેનાં તફાવતો વિશે વધુ ચર્ચા કરીશું.

ઇનલાઇન

એક ઇનલાઇન ફંક્શન માત્ર C ++ માં અન્ય કોઈપણ કાર્યની જેમ છે અને તેને નિયમિત રીતે પણ કહેવામાં આવે છે. તે કાર્ય કરે છે તે છે કે તે સંકલિત કાર્ય વ્યાખ્યાની નકલ બનાવે છે. એટલે કે, તે નિર્ધારિત વસ્તુઓની એક નકલને કમ્પાઇલ કરવા માટે બનાવે છે. એક ઉદાહરણ લેવામાં આવે છે જો આપણે કોઈપણ બે પૂર્ણાંકો ઉમેરી રહ્યા છીએ અને તેને ઇનલાઇન કાર્ય તરીકે બોલાવીએ છીએ, કમ્પાઇલર સંકલન કરવા માટે પૂર્ણાંકોની એક નકલ બનાવશે.

ઉદાહરણ:

ઇનલાઇન પૂર્ણાંક રકમ (પૂર્ણાંક એક્સ, પૂર્ણાંક)

{

રીટર્ન (x + y);

}

મેક્રો

પ્રોગ્રામ લાઇનમાં ટેક્સ્ટ રિપ્લેસમેન્ટને અમલમાં મૂકવા C ++ માં મેક્રોઝ. એટલે કે, તેઓ કાર્યમાં વ્યાખ્યાયિત થયેલ ફેરફારને બદલે લખાણને બદલે છે. એક કાર્ય તરીકે ઇનલાઇનથી વિપરીત, મેક્રો ફંક્શનનો ઉપયોગ કરીને કોડને મૅપ્યુલેપ કરે છે. ઉદાહરણ તરીકે:

# ડ્યૂબલ (X) X * X

int y = 5 વ્યાખ્યાયિત કરો;

પૂર્ણાંક જ = ડબલ (++ વાય);

અહીં, આપણે 30 ની કિંમત મેળવીશું! જેમ જેમ મેક્રો દ્વારા કોલ કરવામાં આવે છે, "X" ને ++ y સાથે બદલવામાં આવે છે જે ++ y ને અન્ય + + y દ્વારા ગુણાકાર કરવા માટે બનાવે છે. આ કુલ 5 * 6 બનાવે છે જે 30 નો 6 નથી. છ મૂળભૂત હશે પરંતુ ખોટું જવાબ.

હવે, મેક્રોઝ અહીં બગ ઉદ્ભવી શકે છે. તેથી કૈપિલરની યાદમાં મૂલ્યોને કૉપિ કરીને પછી તેને સંકલન કરીને એક ઇનલાઇન કાર્ય બચાવમાં આવે છે.

સારાંશ:

1. એક ઇનલાઇન ફંક્શન ફંક્શનની વ્યાખ્યાની કૉપિ બનાવે છે.

2 મૅક્રો ટેક્સ્ટને ફોર્મેટમાં ઓળખી કાઢીને નિર્ધારિત કરે છે.

3 એક ઇનલાઇન કાર્ય પણ લાગુ પડે છે જ્યારે મેક્રો પ્રોગ્રામમાં બગ ઉદ્ભવી શકે છે.