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