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

Sigmoid units-artificial intelligence, Sigmoid units - Artificial intellige...

Sigmoid units - Artificial intelligence Remember that the function inside units take as input the weighted sum, S, of the values coming from the units associated to it. The fun

Recent parallel programming models, A model for parallel programming is an ...

A model for parallel programming is an abstraction in addition its machine architecture is independent. A model is able to be implemented on different hardware and memory architect

What are the benefits of using asp.net routing, In an ASP.NET web applicati...

In an ASP.NET web application that does not build use of routing, an incoming browser request should map to a physical file. If the file does not exist, we get page not found error

Explain busy hour call attempts in telephone traffic, With reference to tel...

With reference to telephone traffic, explain the terms BHCA. BHCA: The number of call attempts in the busy hour is termed as busy hour call attempts (BHCA) that is an importa

Interaction design and human–computer interaction, You should now have a re...

You should now have a reasonably clear understanding of what is meant by interaction design. However, there are several other terms which are often used to refer to particular aspe

SIDE EFFECT , EXPLAIN SIDE EFFECT OF SCAN CONVERSION WITH DIGRAM

EXPLAIN SIDE EFFECT OF SCAN CONVERSION WITH DIGRAM

Explain about the postpurchase interaction briefly, Explain about the postp...

Explain about the postpurchase interaction briefly. Postpurchase Interaction: Customer support and service: The considerations at such can be explained by the followin

Data analysis and results in e-commerce, There were 50 respondents to our s...

There were 50 respondents to our survey. The first component of the data examined here focuses on student's preference (ecommerce or traditional commerce). The Second compone

Execute a reduce operation over members of specified group, Q. Execute a re...

Q. Execute a reduce operation over members of specified group? int info = pvm_reduce( void (*func)(), void *data, int count, int datatype, int msgtag, char    *group, int root

What is big endian and little endian format, What is big endian and little ...

What is big endian and little endian format? The name big endian is used when lower byte addresses are used for the more important of the word. The name little endian is used f

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