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

How will you allocate sub system, How will you allocate sub system? All...

How will you allocate sub system? Allocate every concurrent subsystem to hardware unit. General purpose processor or specialized functional unit as follows: Estimate per

Safety argument for good design, So far we have considered the problems of ...

So far we have considered the problems of poor ID in terms of the loss of productivity and efficiency to business. There is another important aspect to consider: the issue of safet

What is sensitivity list, What is sensitivity list? A list of signals w...

What is sensitivity list? A list of signals which trigger execution of the block when they change value. Sensitivity list  indicates that when a change occurs to any one of

What is dialog module, What is dialog Module? A dialog Module is a call...

What is dialog Module? A dialog Module is a callable sequence of screens that does not belong to a certain  transaction. Dialog modules have their module pools, and can be know

Determine 1''s complement representation of decimal number, 1's complement ...

1's complement representation of decimal number of -17 by using 8 bit representation is ? Ans. (17) 10 = (10001) 2 In 8 bit = 00010001 1's Complement = 11101110

Design and development of an information system, This assignment consists o...

This assignment consists of design and development of an information system. The first part of the assignment consists of the design, which includes construction of ER and DFD diag

Different industries which use this marketing tool, What are the different ...

What are the different industries which use this marketing tool? Ans) Many dissimilar companies can use this tool for developing their business plan but it is often three main

Describe in brief the history of e-commerce, Describe in brief the history ...

Describe in brief the history of E-Commerce.  History of E-commerce. E-commerce started before personal computers were prevalent and has grown into a multi-billion d

Explain naming convention scripts, Explanation:- A script within Rationa...

Explanation:- A script within Rational Robot is a file that haves a sequence of SQABasic code. The extension of the file is always ".REC". Syntax [FEATURE] + "_" + [FUNCTION

Two ways in which one can retrieve data from tables, In general what are th...

In general what are the two ways in which one can retrieve data from tables? Using Select statements, Database Program.

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