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

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Intermediate
Dec 9, 2002

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


Avoid Redundant Function Prototypes


In common top-down C/C++ programming, the main() function is written first, and then the functions that it calls, and then in turn the functions those functions call. For relatively small programs, or modules with static functions, the called functions can or must be contained in the same source code file as the calling functions. If they are added into the file after ("lower down" than) the function that calls them, safety checking language constraints require that a prototype be added in the file before that calling function so that the parameters and return values can be verified. Then, as the program evolves, the prototype must be kept synchronized with the function definition below it. In the case of functions called from different source code files, this typically is not a problem, since the prototypes are contained in header files which are #include'd at the top of the file. To avoid this redundancy, simply place the called functions before the calling functions, and let their definition act as the declaration. For example, it is more work to code:
 
void DoWork();

int main()
{
DoWork();
return(0);
}

void DoWork() { /*function body*/ }

Than it is to simply do:
 
void DoWork() { /*function body*/ }

int main()
{
DoWork();
return(0);
}
Alexander Oss
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date