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

Setjmp and longjmp, How does throwing and catching exceptions differ from u...

How does throwing and catching exceptions differ from using setjmp and longjmp? Ans) The throw operation calls the destructors for automatic objects instantiated as entry to th

Digital electronics, design a ciruit which can work as a 4-bit binary adder...

design a ciruit which can work as a 4-bit binary adder as well as subtractor

What are the objectives of uml, What are the Objectives of UML tra...

What are the Objectives of UML trace development of UML; recognize and describe notations for object modelling using UML; describe a variety of structural and be

Define step by step procedure in computer programming, Define Step by Step ...

Define Step by Step Procedure in Computer Programming? The Computer programming is the skill and art of creating a computer program a defined set of instructions in source code

What is deadlock in operating system, Explain Deadlock in operating system ...

Explain Deadlock in operating system ? Deadlock: all process in a set of processes is waiting for an event which only a process in the set can cause.

What is stack addressing, Q. What is Stack Addressing? In this addressi...

Q. What is Stack Addressing? In this addressing technique operand is implied as top of stack. It isn't explicit however implied. It employs a CPU Register known as Stack Pointe

What is phase encoding, What is phase encoding or Manchestor encoding? ...

What is phase encoding or Manchestor encoding?  It is the method for combining clock information with data. It is a scheme in which alters in magnetization occur for each data

Compact disk read only memory, Q. What is Compact Disk Read Only Memory? ...

Q. What is Compact Disk Read Only Memory? This technology has evolved out of entertainment electronics market where cassette tapes and long playing records are being replaced b

Control-centered virtual manufacturing, Control-Centered Virtual Manufactur...

Control-Centered Virtual Manufacturing This is the addition of simulations to control actual processes and models, permitting for seamless simulation for optimization throughou

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