devxlogo

Return type _Cdecl

Return type _Cdecl

Question:
I have seen that in many of the header files in C++ the return type is _Cdecl. For example, in complex.h, we have the following:

     friend complex _Cdecl acos(complex&)

What does _Cdecl mean, and how can we use it in our programs?

Answer:
Although it may look like it, _cdecl does not specify a return type. It specifies that the function uses the C calling convention, the default for C and C++ programs.

Calling conventions specify how the compiler generates code to call a function. For example, the C calling convention specifies that arguments are pushed onto the stack in reverse order and that the caller is responsible for restoring the stack. The _stdcall calling convention, which is used by Win32 API functions, specifies that the called function must restore the stack.

Although it really doesn’t matter which calling convention you use, it is critical that the calling code uses the same calling convention used by the function you are calling. Normally, you won’t need to worry about this. Simply use the declarations provided by anyone who writes functions that you call. However, because some systems support functions with different calling conventions, you will sometimes see the calling convention specified in the declarations.

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

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.

About Our Journalist