What is meant by the guest function, Computer Engineering

Assignment Help:

When  transferring  one  function  to  another,  what  is  meant  by  the  guest  function?

A pointer to a function can be passed to another function as an argument. This allows one function to be transferred to another, as though the first function were a variable. This  is  very  useful  in  scientific  programming.  Imagine  that  we  have  a  routine  which numerically integrates a general one-dimensional function. Ideally, we would like to use this routine to integrate more than one specific function. We can achieve this by passing (to the routine) the name of the function to be integrated as an argument.

The function whose name is passed as an argument is called guest function. Likewise, the function to which this name is passed is called the host function. A pointer to a guest function is identified in the host function definition by an entry of the form data-type  (*function-name)(type 1,  type 2, ...) in the host function's argument declaration. Here, data-type is the data type of the guest function, function-name is the local name of the guest function in the host function definition, and type 1, type 2, ... are the data types of the guest function's arguments. The pointer to the guest function also requires an entry of the form data-type  (*)(type 1, type 2,  ...) in the argument declaration of the host function's prototype. The guest function can be accessed within the host function definition by means of the indirection operator. To achieve this, the indirection operator must precede the guest function name, and both the indirection operator and the guest function name must be enclosed in parenthesis: i.e.,

 

(*function-name)(arg 1, arg 2,  ...)

Here, arg 1, arg 2,... are the arguments passed to the guest function. Finally, the name of a guest function is passed to the host function, during a call to the latter function, via an entry like "function-name" in the host function's argument list.

The program listed below is an example which illustrates the passing of function names as arguments to another function:

/* passfunction.c */

/*

Program to illustrate the passing of function names as arguments to other functions via pointers

*/

#include

/* Function prototype for host fun. */

void cube(double (*)(double), double, double *);

double fun1(double);   // Function prototype for first guest function

double fun2(double);

int main()

 

{

// Function prototype for second guest function

double x, res1, res2;

/* Input value of x */ printf("\nx = "); scanf("%lf", &x);

/* Evaluate cube of value of first guest function at x */

cube(fun1, x, &res1);

/* Evaluate cube of value of second guest function at x */

cube(fun2, x, &res2);

/* Output results */

printf("\nx = %8.4f  res1 = %8.4f   res2 = %8.4f\n", x, res1, res2);

return 0;

}

void cube(double (*fun)(double), double x, double *result)

{

/*

 


Related Discussions:- What is meant by the guest function

Convert number to hexadecimal and decimal, Perform the following calculatio...

Perform the following calculations assuming that all numbers are stored in 16-bit registers as 2's complement binary numbers with no overflow provision. Convert each of the numbers

Describe briefly how firewalls prevent network, Describe briefly how firewa...

Describe briefly how firewalls prevent network. A firewall is only a program or hardware device which filters the information coming via the Internet connection within your pr

Critical capabilities for superior firm performance, What are the critical ...

What are the critical capabilities for superior firm performance in e-commerce? Three firm capabilities which are critical for superior firm performance within e-commerce are:

State the concept of multiplicity, Multiplicity Multiplicity in an ass...

Multiplicity Multiplicity in an association specifies tells us about number of objects participate in a relationship. It decides the number of related objects. Multiplicity is

Determine the framed data including a parity bit, Determine the Framed data...

Determine the Framed data including a parity bit   For illustration when even parity is chosen, parity bit is transmitted with a value of 0 if the number of preceding

Addition of array elements using two processors, Q. Addition of array eleme...

Q. Addition of array elements using two processors? In this example we have to find sum of all elements of an array A of size n. We will divide n elements in 2 groups of roughl

What is code segment, Q. What is CODE SEGMENT? The logical program segm...

Q. What is CODE SEGMENT? The logical program segment is termed as code segment. When linker links a program it makes a note in header section of program's executable file defin

Neural network for two predictors thickness, 2) Consider the following neur...

2) Consider the following neural network for two predictors Thickness and Alignment and two classes Print Quality High and Low. Some weights are shown in the table, including weigh

Define programmed i/o, Define Programmed I/O. It is the result of input...

Define Programmed I/O. It is the result of input and output instructions written in the computer program. Every data item transfer is initiated by an instruction in the program

Determine capacity in bytes of a certain memory, A certain memory has a cap...

A certain memory has a capacity of 4K × 8 (i)  How many data input and data output lines does it have? (ii) How many address lines does it have? (iii) What is its capacity in bytes

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