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 about end-user computing, End-user Computing: The growing base of p...

End-user Computing: The growing base of personal computers and local area networks in the end user community are supported. This offers installation services, training and helps de

What are the aspects of security policy, What are the aspects of security p...

What are the aspects of security policy The security policy should cover aspects such as network service access, physical access, limits of acceptable behaviour, company's pro

Explain concept of temporal parallelism, Concept of Temporal Parallelism  ...

Concept of Temporal Parallelism  In order to make clear what is meant by parallelism inherent in solution of a problem, let's discuss an example of submission of electricity b

What is span of control, Q. What is span of control? Span of control te...

Q. What is span of control? Span of control tells the ratio among superiors and subordinates. Generally organizations are having two different types of spans. They are Wide Spa

What is macro-expansion, What is macro-expansion? Macro calls lead to m...

What is macro-expansion? Macro calls lead to macro expansion. Throughout macro expansion, the macro call statement is replaced through a sequence of assembly statements.

Define synchronous bus, Define synchronous bus. Synchronous buses are t...

Define synchronous bus. Synchronous buses are the ones in which every item is transferred during a time slot(clock cycle) known to both the source and destination units. Synchr

What is the meaning of toggle in a JK flip flop, In a JK Flip-Flop, toggle ...

In a JK Flip-Flop, toggle means ? Ans. Change the output to the opposite state implies the meas of toggle, in a JK Flip-Flop.

Dna sequences, The dataset provided in this assignment contains a collectio...

The dataset provided in this assignment contains a collection of real DNA sequences. The number of true binding sites is quite limited and that makes the problem challenging. In ma

Explain function of network layer in tcp/ip protocol stack, Explain about t...

Explain about the function of network layer briefly in TCP/IP protocol stack. Internetwork Layer: The best-called TCP/IP protocol at internetwork layer is Internet Protoc

Should we use cgi or an api, APIs are proprietary programming interfaces su...

APIs are proprietary programming interfaces supported by certain platforms. By using an API, you lose all portability. If you know your application will only ever run on single pla

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