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

The six various application of stack, The six several application of stack ...

The six several application of stack in computer application is: 1.  Conversion of infix to postfix notation and vice versa. 2.  Evaluation of arithmetic expression. 3.

Design odd-even transposition algorithm, Q. Design Odd-Even Transposition A...

Q. Design Odd-Even Transposition Algorithm? Algorithm: Odd-Even Transposition for I=1 to N     {            If (I%2 != 0) //i.e. Odd phase            {

Write html code to accomplish the web page to insert frame, Write the HTML ...

Write the HTML code to accomplish the web page to insert the frame extending 300 pixels across the page from left side. The HTML code to accomplish the web page is given below

What is modem?, A device, usually linked to a serial port of a computer, th...

A device, usually linked to a serial port of a computer, that transfer data over regular phone lines. Modem stands modulator demodulator; it changes a digital stream of data into s

Define the term busy hour, Define the term busy hour Busy Hour: Conti...

Define the term busy hour Busy Hour: Continuous 1- hour period lying completely in the time interval concerned, for that the traffic volume or the number of calls attempts is

Explain about joint application development, Q. Explain about Joint Applica...

Q. Explain about Joint Application Development? It is defined as a structured approach in which users, managers, and analysts work together for many days in a series of intensi

Functions in first-order logic sentences, Functions in first-order logic se...

Functions in first-order logic sentences - artificial intelligence: Functions may be thought of as special predicates, where we think of all but 1 of the arguments as input and

Minimize the logic function using NAND gate, Minimize the logic function F(...

Minimize the logic function F(A, B, C, D) = ∑ m(1,3,5,8,9,11,15) + d(2,13) using NAND gate with help of K-map. Ans. Realization of given expression by using NAND gates:  In

Discuss on wbmp, Question 1 How to call a WML Script from a WML page Q...

Question 1 How to call a WML Script from a WML page Question 2 Discuss on the following WML Script data type Question 3 Discuss on the following WML script statements

Java''s layout managers give over traditional windowing syste, Java uses la...

Java uses layout managers to lay out components in a consistent manner across all windowing platforms. As Java's layout managers aren't tied to absolute sizing and positioning, the

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