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

Explain region, What is a Region? A Region is a continuous area of a p...

What is a Region? A Region is a continuous area of a process's address space (like text, data and stack). The kernel in a "Region Table" that is local to the process mainta

Can we change the color of the worksheet tabs in my workbook, In a word,you...

In a word,you can't. It would certainly be helpful to be able to color-code your worksheet tabs. For some reason, Microsoft hasn't executed this feature, which has been available i

Performance and issues in pipelining-throughput, Performance and Issues in ...

Performance and Issues in Pipelining Throughput:  Throughput of a pipeline can be defined as the number of results that have been getting per unit time. It can be denoted as:

Code density and smaller faster programs, Q. Code Density and Smaller Faste...

Q. Code Density and Smaller Faster Programs? Memory was very expensive in older computer. So there was a need of less memory utilization, which is it was cost effective to have

Automatic switching system and manual switching system, Discuss the advanta...

Discuss the advantages of automatic switching systems over manual switching system. Automatic switching systems have some advantages over the manual exchanges: 1. In a manua

What are the advantages of electronic payment system, What are the advantag...

What are the advantages of electronic payment system? Advantages of the electronic payment system are illustrated below: This gives good security schemes. Four important sec

Explain parsing, What is parsing? The target of parsing is to find out...

What is parsing? The target of parsing is to find out the syntactic validity of a source string. A tree is built for use through subsequent phase of compiler, if the string is

Limitation of software engineering, i want to get answer about this topic w...

i want to get answer about this topic what is software engineering and what is its limitation

Explain about synchronous dram, Q. Explain about Synchronous DRAM? One ...

Q. Explain about Synchronous DRAM? One of the most broadly used forms of DRAM is synchronous DRAM (SDRAM). Unlike the conventional DRAM that is asynchronous SDRAM exchanges dat

Effect of is on humans - information system, Effect of IS on Humans - Infor...

Effect of IS on Humans - Information System We have concentrated in this chapter on the ways that IS has evolved making it more useful and more user-friendly. This proliferat

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