Define functions. Write the advantages and disadvantages of functions.
Definition of Function:
A function is a routine or a set of
instruction or code that performs a specific task and can be processed
independently.
When the program passes control to a
function the function perform that task and returns control to the instruction
following the calling instruction. The most important reason to use the
function is make program handling easier
as only a small part of the program is dealt with at a time.
A function is a “black box” that
we’ve locked part of our program into. The idea behind a function is that it
compartmentalizes part of the program, and in particular, that the code within
the function has some useful properties.
Advantages of Functions:
i)
The length of
a source program can be reduced by using functions at appropriate
places. This factor is particularly critical with microcomputers where memory
space is limited.
ii)
It is easy to locate and isolate a faulty
function for further investigations.
iii)
A function may be used by many other programs.
This means that a C programmer can build on what others have already done,
instead of starting all over again from scratch.
iv)
It facilitates top-down modular programming. In
this programming style, the high level logic of the overall problem is solved
first while the details of each lower-level function are addressed later.
v)
Its interface to the rest of the program is
clean and narrow.
Disadvantages of Functions:
vi)
While adding a user function can speed up code
that is best written in C rather than a scripting language, it is not always
the best choice for implementation:
vii)
It requires the programmer to be well versed in
C, including pointers, function pointers, dynamic memory allocation, and
debugging. Often the headaches C causes, especially for the neophyte, far
outweigh any run-time savings. Bugs in the code might not manifest themselves
until well after the C function ends, making debugging a nightmare.
viii)
There may not be any speed advantage. Vortex is
pretty fast at most operations; for small functions it may be just as fast -
and much easier - to write the function in Vortex. Since Vortex already has
powerful data processing functions, and the ability to execute external
programs, it may be faster to <EXEC> the C code in a separate program and
parse it in Vortex, especially as a quick prototype.
ix)
It's less portable. A C function means a new
Vortex executable must be made if the hardware platform changes. Other Vortex
users won't have the custom function in their taxis executable.