Explain the differences between macros and subroutines, Computer Engineering

Assignment Help:

Explain the differences between macros and subroutines.

Macros Vs Subroutines

(i) Macros are pre-processor directives which are processed before the source program is passed to the compiler.

Subroutines are blocks of codes along with a exact task, to be performed and are directly passed to the compiler.

(ii) In a macro call the pre-processor replaces the macro template along with its macro expansion, in a literal manner.

As against this, into a function call the control is passed to a function with exact arguments, some computations are performed in the function and a helpful value is returned back from the function.

(iii) Macro raises the program size. For illustration, if we use a macro hundred times in a program, the macro expansion goes in our source code at hundred various places. Because the function makes the program smaller and compact, for example, if a function is used, the even if this is called from hundred various places in the program, this would take similar amount of space in the program.

(iv) Macros compose the program run faster as they have already been expanded and placed into the source code before compilation. While, passing arguments to a function and obtaining back the returned values does take time and would thus slow down the program.

(v)   Illustration of macro

#define AREA(x) (3.14*x*x) // macro definition main(){

float r1=6.25, r2=2.5, a;

a=AREA(r1); // expanded to (3.14 * r1 * r1)

printf("\n Area of circle =%f",a);

a=AREA(r2); // // expanded to (3.14 * r2 * r2)

printf("\n Area of circle= %f",a);} Example of subroutine

main(){

float r1=6.25, r2=2.5, a;

a=AREA(r1); // calls AREA() printf("\n Area of circle =%f",a); a=AREA(r2); // calls AREA()

printf("\n Area of circle= %f",a);}

float AREA(float r) // subroutine{

return 3.14*r*r;}


Related Discussions:- Explain the differences between macros and subroutines

C++ program, A palindrome is a string that reads the same from both the end...

A palindrome is a string that reads the same from both the ends. Given a string S convert it to a palindrome by doing character replacement. Your task is to convert S to palindrome

Spatial domain interpolation, Transfer Domain Create an interpolation al...

Transfer Domain Create an interpolation algorithm using the fast Fourier transformer. Assess the performance of the algorithm by using the PSNR and SSIM.  Compare your results w

Explain about interrupt-processing sequence, Q. Explain about Interrupt-Pro...

Q. Explain about Interrupt-Processing Sequence? The occurrence of an interrupt fires a numbers of events both in processor hardware and software. Figure below displays a sequen

Regular expression pattern in a wsdl document, Probelm: (a) Show the at...

Probelm: (a) Show the attributes used by Regular Expression Pattern in a WSDL document. (b) Describe the three standard wire formats for transmitting Web Service requests a

.bus, clasification of bus

clasification of bus

What is oo development, What is OO Development? OO development is a way...

What is OO Development? OO development is a way of thinking about software based on abstractions that exist in the actual world. Development refers to software lifecycle, desig

Programming for arithmetic and string operations, Advanced aspects of assem...

Advanced aspects of assembly language programming in this section. A number of these aspects give assembly an edge over high level language programming as far as efficiency is conc

Classify computer systems according to capacity, Classify computer systems ...

Classify computer systems according to capacity. How they are different from computers according to the classification of technology. Provide comparative study also

Explain activities of an operating system, List the major activities of an ...

List the major activities of an operating system with respect to memory management, secondary storage management and process management. Operating system is causes for followin

What is a accepting computation history, What is a accepting computation hi...

What is a accepting computation history?  An accepting computation history is explained as , Let M be a Turing machine and w be a input string,  for M on w is a sequence of con

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd