Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
Apr 22, 1998

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.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date