devxlogo

Passing a unction as an argument

Question:
How do I pass a function as a parameter?

Answer:
First, let’s distinguish between a parameter and an argument. The parameter is the type of the object passed. An argument is the actual object passed. The following function takes a parameter of type ‘pointer to function that doesn’t return a value and takes no arguments:

int func( void (*p)() ) //p is a function ptr{}

Now suppose you want to pass the following function as an argument, which has a signature that matches func’s parameter:

void f(){}

All you do is pass its name:

int main(){ func(f); //f is converted to a pointer}

C and C++ automatically convert a function name to a pointer to that function. You should also remember that this technique applies to plain functions, not to member functions of a class.

Charlie has over a decade of experience in website administration and technology management. As the site admin, he oversees all technical aspects of running a high-traffic online platform, ensuring optimal performance, security, and user experience.

See also  Seven Service Boundary Mistakes That Create Technical Debt

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.