Remove Unneeded #Includes Directive From the Release Version

Remove Unneeded #Includes Directive From the Release Version

It’s customary to use output statements as a debugging aid. For example, displaying the name of a function that is currently in scope or printing a variable’s value on the screen. These statements are automatically removed from the release version of the application by macro magic. For example:

   void func()  {    int n;    n = sqrt(n);  #ifdef DEBUG // code below exists only in debug version    cout 

Seemingly, the statements enclosed in #ifdef macros don't incur any overhead in the release version because the preprocessor removes them when the symbol DEBUG isn't defined. However, programmers often forget to enclose the #include directive within an #ifdef clause. The objects add a substantial amount of code to the program, increasing the executable's size and memory footprint by up to 200 KB under certain conditions. Therefore, remember to remove the #include directive if your app doesn't use any of the iostream objects. Alternatively, you can wrap the #include directive in an #ifdef clause:

   #ifdef DEBUG // only in debug mode  #include  // not included in release version  #endif  int main()  {    func();  }


Share the Post: