C++ Usage Issues - Problems, Solutions, and Suggestions
    Hoan Hoang 
    hoan at tidalstream.com
       
    Fri Jun 22 11:15:00 UTC 2007
    
    
  
I think the standard way for C prototypes to compile both in C or C++
would be as bellow because C compiler would not understand extern "C".
#ifdef __cplusplus
extern "C" {
#endif
/* Prototypes here */
#ifdef __cplusplus
}
#endif
__cplusplus is a standard macro defined in all C++ compiler so you don't
need to worry about defining macroes when porting to other platforms.
> 2. Some header files are not quite ready for C++ compatibility. 
> Specifically, this exercise found one, rtems/rtems_bsdnet.h, that does
> not include appropriate measures.  Having to type this:
>
>     extern "C" {
>     #include <rtems/rtems_bsdnet.h>
>     }
>
> is ugly and just plain wrong.  This header, and others like it, should
> be modified to use the _BEGIN_STD_C and _END_STD_C appropriately to
> encapsulate definitions that the C++ compiler will otherwise mangle. 
> Using these macros are better then simply extern "C" { }  approach too,
> because they seem to handle the std namespace correctly.
>
>   
    
    
More information about the users
mailing list