How to mix C and C++ code

When a basic sketch is compiled, the code is by default interpreted as C++ code. If you prefer to use C code or have a library written in C, there are a few things nessecary to ensure the code is compiled using C language rules.

When using C code in source files, in addition to a header file; you need to use a .c extension instead of the Arduino .ino, or C++ .cpp extension. Header files for both C and C++ use the extension .h.

If you have a header file with only C declarations inside, you can use it in C++ code by wrapping the include in an extern declaration block. For a full example see the attached file

extern "C"{
  #include "My_C_Header.h"

If you do not wish to have a separate header, or if you want to mix C and C++ declarations in the same header, you can wrap the appropriate C declarations in an extern block. You can have multiple declarations inside an extern block.

extern "C"{
  int MyCFunction( void );

 This example can be found complete in


Attached files:,

Tags: C, C++
Last update:
2014-04-15 14:05
Christopher Andrews
Average rating: 3 (2 Votes)

You can comment this FAQ

Chuck Norris has counted to infinity. Twice.