How do I write headers that compile as C and C++?

Writing headers that compile as both C and C++ requires using feature checks and ensuring that your code conforms to both languages' standards. The C++ standard allows C headers to be included directly, provided they are properly guarded.

The typical way to create a header that can be included in both C and C++ is to use `#ifdef __cplusplus` preprocessor directives. Here’s an example:

#ifndef MY_HEADER_H #define MY_HEADER_H // C compatible declarations void my_function(); #ifdef __cplusplus // C++ specific declarations class MyClass { public: void myMethod(); }; #endif #endif // MY_HEADER_H

C headers C++ compatibility C/C++ headers preprocessor directives header guards