DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(autocf21.info.gz) Test Functions

Info Catalog (autocf21.info.gz) Guidelines (autocf21.info.gz) Run Time
 
 5.4.3 Test Functions
 --------------------
 
 Function declarations in test programs should have a prototype
 conditionalized for C++.  In practice, though, test programs rarely need
 functions that take arguments.
 
      #ifdef __cplusplus
      foo(int i)
      #else
      foo(i) int i;
      #endif
 
    Functions that test programs declare should also be conditionalized
 for C++, which requires `extern "C"' prototypes.  Make sure to not
 include any header files containing clashing prototypes.
 
      #ifdef __cplusplus
      extern "C" void *malloc(size_t);
      #else
      char *malloc();
      #endif
 
    If a test program calls a function with invalid parameters (just to
 see whether it exists), organize the program to ensure that it never
 invokes that function.  You can do this by calling it in another
 function that is never invoked.  You can't do it by putting it after a
 call to `exit', because GCC version 2 knows that `exit' never returns
 and optimizes out any code that follows it in the same block.
 
    If you include any header files, make sure to call the functions
 relevant to them with the correct number of arguments, even if they are
 just 0, to avoid compilation errors due to prototypes.  GCC version 2
 has internal prototypes for several functions that it automatically
 inlines; for example, `memcpy'.  To avoid errors when checking for
 them, either pass them the correct number of arguments or redeclare them
 with a different return type (such as `char').
 
Info Catalog (autocf21.info.gz) Guidelines (autocf21.info.gz) Run Time
automatically generated byinfo2html