Answer: Calling C function from C++ code is really simple. There may be a chance in software projects where mixing C and C++ code in the same program is required. One of the standard way, is to put C functions into a C header file, in extern “C” block. Notice how C++ macro has been used. For example
#ifdef __cplusplus
extern "C"
{
#endif
//some functions here
//functionOne();
//functionsTwo();
#ifdef __cplusplus
}
#endif
This way, supports for both C and C++ compiler. It specifies the linkage specification that how C or C++ compiler has to link. Whenever C++ compiler, find this macro, it compiles the functions in C –style.
Here is C++ code example to call C function from C++ code :
//header file c-function-header.h
#ifndef __TEST_H__
#define __TEST_H__
#include
#ifdef __cplusplus
extern "C" {
#endif
void C_function();
#ifdef __cplusplus
}
#endif
#endif/*__TEST_H__*/
// c file
#include "c_func_header.h"
void C_function(){
printf("This is C function...\n");
}
//main.cpp
/* This is the CPP sample to call C API */
#include "c_func_header.h"//include c header file here
#include
using namespace std;
int main(){
cout<<"Calling C function from C++ \n";
C_function();
cout<<"Called C function successfuly \n";
return 0;
}