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

Minimax algorithm - artificial intelligence, Minimax algorithm - artificial...

Minimax algorithm - artificial intelligence: The minimax algorithm is so called because it assumes that you and your opponent are going to act rationally, so that if you will

Explain the matlab language, This is a high-level matrix/array language wit...

This is a high-level matrix/array language with control flow statements, functions, data structures, input/output, and object-oriented programming features. It permits both "progra

Explain internal organization of bit cells in a memory chip, Explain with n...

Explain with neat diagram the internal organization of bit cells in a memory chip. Memory cells are usually organized in the form of an array, in which every cell is capable of

Input-output-processor interconnection network (iopin), Input-Output-Proces...

Input-Output-Processor Interconnection Network (IOPIN) This interconnection network is used for communication between I/O channels and processors. All processors commune with a

How many lists can a program can produce, How many lists can a program can ...

How many lists can a program can produce? Every program can produce up to 21 lists: one basic list and 20 secondary lists.  If the user makes a list on the next level (that is,

What is an advantage of executing a process in background, What is an advan...

What is an advantage of executing a process in background? The most common reason to put a process in the background is to permit you to do something else interactively without

Differentiate b/w wml-script & web-based scripting language, Differentiate ...

Differentiate between WML-Script and Web-based scripting languages. WML Script is a lightweight procedural scripting language, optimized for small-memory, low-power CPU wireles

Explain the term - strong typing and weak typing, Explain the term - Strong...

Explain the term - Strong Typing and  Weak Typing Strong Typing : When any operation upon an object can be checked during compile time, when type is confirmed forcefully.

Distinction between lossy and lossless data compression, Question: a De...

Question: a Describe the following terms with reference to video editing: 1. Video frame rate 2. Pixel aspect ratio 3. Frame size 4. Temporal compression 5. Spatial comp

Temporary registers w and z, Why the temporary registers W and Z are named ...

Why the temporary registers W and Z are named so I mean we start from A,B,C,D,E then H and L coz H stands for higher bit nd L for lower bit of the address pointed by memory pointer

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