Including C headers inside a C++ program
Solution 1
For a list of C standard C headers (stdio, stdlib, assert, ...), prepend a c and remove the .h. For example stdio.h becomes cstdio.
For other headers, use
extern "C"
{
#include "other_header.h"
}
Solution 2
If you put this inside your headers:
#ifdef __cplusplus
extern "C"
{
#endif
// your normal definitions here
#ifdef __cplusplus
}
#endif
Then it will work for both C and C++ without any problem ...
Hope this helps...:)
Solution 3
I'm not sure what you need exactly, but if you want to use old fashioned C functions inside you C++ program, you can easy include them by removing the .h and add a "c" prefix.
for example if you want to include math.h
use
#include <cmath>
Solution 4
Just include them inside a extern "C"
block an they should work like expected.
Solution 5
You can #include
them using their original names. #include <stdio.h>
works just fine in C++.
Arjun Vasudevan
Programmer Analyst, Spiritual Seeker, Undercover Economist
Updated on April 28, 2020Comments
-
Arjun Vasudevan about 4 years
I have a C++ program (.cpp) inside which I wish to use some of the functions which are present inside the C header files such as stdio.h, conio.h, stdlib.h, graphics.h, devices.h etc.
I could include the stdio.h library inside my cpp file as :
#include <cstdio>
. How do I include the other library files?How do I add the graphics.h library?
I'm using Microsoft Visual Studio 6.0 Enterprise Edition and also Turbo C++ 3.0.
-
David Thornley almost 14 yearsThe C standard headers are required to work in standard C++, although you may be putting more than you like into the global namespace. Non-standard headers, like conio.h or graphics.h, may not be set up properly, and may need to be wrapped in
extern "C" { ... }
. Check your implementation documentation.